NLP
以前、SentencePieceについて記事を書きましたが、 www.pytry3g.com 今回は実際にSentencePieceを使ってWikipediaのデータから単語分割モデルを作ってみたいと思います。 この記事を見ればできるようになること。 単語分割モデルの作り方 単語分割モデルの使…
いつのことだったか覚えていませんが、MeCabよりもSentencePieceを使うべきだというツイートを見かけてから、サブワードのことが気になっていたんですが、、、 ん?サプワードって何だろう?^^; そもそもSentencePieceって何?(@_@;) 、、、、、、、(^_^;)…
日本語の文章を単語に分割するときはMeCabを使っていた私ですが、スタンフォード大学がPythonで使用できる自然言語処理ライブラリStanfordNLPを提供していると知り、試しに使ってみました。 本記事ではStanfordNLPのインストールから簡単なサンプルプログラ…
自分でカスタマイズしたMeCabの辞書を使ってWikipediaの記事を形態素解析しWord2Vecを作りたくなったので、やってみました。 本記事ではまず、Wikiextractorを使ってWikipediaの日本語記事から本文を抽出し、形態素解析したのちにGoogle Colaboratory上でWor…
PyTorchを使ってSeq2seqの実装をしてみたので、その実装方法について書いてみます。学習に用いるデータセットには実装したSeq2seqが正しく学習できているか簡単に評価できる、トイ・プロブレム(足し算)を使っています。 Google Colaboratoryで動作確認をし…
長年?PyTorchによる自然言語処理の実装方法がなんとなく分かっているようで分かっていない状態の私でしたが、、、 最近やっと実装方法が分かったので、でもやっぱり分かっていないので、本当に理解できているのかの確認の意味を込めて言語モデルの実装方法…
前回書いた記事の続きです。 www.pytry3g.com 変更点 MeCabの対策 paddingについて __init__の変更 encode()の変更 関連記事 ソースコード 変更点 mecabを使って形態素解析をする際にエラーが出る場合があるので、それの対策とpaddingについて少し変更する。…
この記事では自然言語処理について自分が勉強したことを書いた記事についてまとめていきます。 単語の切り出し作業 形態素解析 MeCab N-gram 自然言語をベクトルにする Bag of Words TF-IDF Word2Vec GloVe テキスト分類 Cosine Similarity Sparse Composite…
N-gramについて勉強したので、そのメモ。 この記事の最後にはpythonで実装したN-Gramを生成するコードを置いておきます。 はじめに N-gram 文字単位のN-gram unigram bigram trigram 単語単位のN-gram unigram bigram trigram 長所と短所 長所 辞書が必要な…
ベクトル間の類似度を計測するひとつの手法にコサイン類似度(Cosine Similarity)というものがあります。 今回はこのscikit-learnで実装されているCosine Similarityを用いて以前収集したツイートに類似しているツイートを見つけてみたいと思います。 関連…
Word2Vecの単語ベクトルから、いい感じな文書ベクトルが作れるSCDVというのを使ってテキスト分類をしてみました。 SCDVって? 今回やること 今回使うもの 1. データの用意 Wikipediaの記事をダウンロード ツイートの用意 形態素解析 訓練データとテストデー…
単語分散表現のひとつGloVeを使ってみました。 この記事では理論については詳しく書きません、numpyを使って実装されているGloVeの使い方について書いていきます。 関連リンク GloVe 使い方 1. ライブラリとかの準備 2. データの用意 3. 単語辞書と共起ペア…
主に情報検索の分野で使われるTF-IDFについて勉強したので、そのメモ。 さらに、scikit-learnで用意されているものを使ってTF-IDFを計算してみます。 環境 関連リンク TF-IDF Term Frequency Inverse Document Frequency Term Frequency - Inverse Document …
前回書いた記事の続きです。 www.pytry3g.com 最近mecab-ipadic-NEologdを使えるようにしたので、JapaneseTextEncoderでも使えるようにしてみました。 www.pytry3g.com 変更点 __init__の変更 ソースコード 変更点 今回はNEologdを加えるだけです。 __init__…
この記事では日本語のテキストコーパスから辞書を作るライブラリJapaneseTextEncoderについての記事をまとめていきます。 環境 その① その② その③ その④ その⑤ その⑥ ソースコード text_encoder.py ソースコード reserved_tokens.py 環境 私の実行環境です。…
この記事は前回書いた記事の続きになります。 www.pytry3g.com 前回JapaneseTextEncoderにいくつかの機能を追加しましたが、JapaneseTextEncoderを使って言語モデルやSeq2Seqを実装をするにあたり改善すべき点がありそうなので、それらについてコードの変更…
この記事は前回書いた記事の続きです。 www.pytry3g.com 前回はJapaneseTextEncoderに指定した品詞を辞書に加えないように改良しました。 今回は以下の4つの点をJapaneseTextEncoderに加えてみます。 データセットの用意 パディング(padding) ミニバッチ…
前々回の記事でTensorFlowを使ってテキスト分類をした結果、あまりうまくいきませんでした。原因として助詞や助動詞といった、テキストを分類する上であまり意味のなさそうなものがあるからかなと感じました。 そこで今回は以前作ったJapaneseTextEncoderに…
DeepLearningを使って自然言語処理をする際に、今まで毎回毎回テキストから辞書を作るコードをゼロから書いてきました。 毎回面倒に感じていたので、今回テキストを用意したら一瞬で辞書を作ってくれるプログラムを書いてみました。 環境 作ったもの 使い方 …
gensimのWord2Vecの使ってみたので、そのメモ。 今回はWikipediaの文章を使ってやってみますが、すぐに学習結果を知りたかったので少ないデータで学習をしています。 環境 データの用意 ライブラリのインポート Wikipediaの記事をダウンロード BeautifulSoup…
PyTorch-NLPを使ってみました。 PyTorchを使って自然言語処理をするときに便利なライブラリ(※ただし、英語に限る。) 日本語を扱う場合はあまり使えないかもしれません。日本語の資料もないし… この記事ではPyTorch-NLPで日本語を扱うために自分が学んだこ…
今回はgensimとPyTorchを使ってニュース記事の分類をやってみます。 環境 データの用意 前処理 単語辞書を作る データの変換 ネットワークの定義 学習 テスト おわり 環境 Windows10 Python 3.6 PyTorch 0.2 gensim 2.3.0 MeCab データの用意 ここにあるー>…
Bag of Wordsについて書いてみます。 ほとんどの機械学習は入力として数値データを与えなければなりません。そのため、自然言語処理において自然言語で書かれたデータを何らかの形で数値に変換する必要があります。Bag of Wordsはそのための一つの方法になり…
この記事ではRNNによる言語モデルを使った文章生成の方法(主にプログラム)について書いてみます。 はじめに 環境 実行環境 必要なライブラリなど 1. Wikipediaからデータを取ってくる ライブラリのインポート Wikipediaの記事をダウンロード 関連記事 2. …
前回の続き、今回はTFIDFを使ってスパム分類をしてみる。 pytry3g.hatenablog.com 前準備 TFIDF Training 結果 コード 前準備 import argparse import codecs import string import numpy as np from nltk import word_tokenize from sklearn.feature_extrac…
前回は最低限の設定をしたので今回はMeCabを使えるように設定していく。 pytry3g.hatenablog.com MeCab インストール コマンドライン プログラム MeCab MeCabとは形態素解析(テキストから単語を切り出して、単語の役割を解析する技術)をするためのツールで…
環境 前準備 データのダウンロード データの中身 データの前処理 データの分割 正規化 Bag of Words データの分割 Training ネットワークの定義 パラメータの設定 学習 Test 結果 コード 環境 python 3.6.2 Anaconda 4.3.27 Windows10 scikit-learn 0.19.0 n…