Pythonで自然言語処理のタスクをやってみる。しているエンジニアの日記スマートフォン用の表示で見るのんびりしているエンジニアの日記ソフトウェアなどのエンジニア的な何かを書きます。2017-12-05Pythonで自然言語処理のタスクをやってみる。Links皆さんこんにちはお元気ですか。アドベントカレンダー真っ盛りですね。2017」のアドベントカレンダー第5日です。qiita.com自然言語処理には様々なライブラリ(NLTKやCoreNLP)があります。機会として、本記事では紹介が少ないspaCyを紹介します。spaCyspaCyとはspaCyはPythonの発展的な自然言語処理のライブラリです。実際に使われていることを想定しており、英語、ドイツ語、フランス語、スペイン語に対応しています。トークナイザーは日本語もあるとのこと(確かJanomeで動作します)。comparison)が載っており、他のライブラリとどのような点が違うのかを確認できます。spacyspaCyで遊んでみるspaCyですが、日本語対応が用意されています。残念ながら日本語に対応したモデルがないため、まだ本格的な日本語解析は難しいのかなと感じています。準備されている英語のモデルを使います。英語解析の準備をします。pen.")文章を単語ごとに区切る文章を単語ごとに区切ることが可能です。(token)結果はスペースで区切られている次の通りです。thisisapen.文章を文ごとに分ける簡単そうな例ですが、文章を文ごとに分解します。英語だと、ピリオドによる分割になるでしょうか。(sent)出力結果です。「.」による分割ができています。Recognizer)固有表現抽出は文章の中から固有の表現を発見する技術です。Yorkが出力できていません。固有表現が何かだけではなく、どんな固有表現(人なのか、組織なのか)かも抽出できています。ORG名詞フレーズの抽出フレーズの抽出も可能です。(noun_chunk)出力結果です。これもそれっぽいですね。data文章間の距離を計算する。文書のベクトルを計算します。word2vecに類似したアルゴリズムです。実装は非常にシンプルでapple.vectorをすれば、文書のベクトルを取得できます。ベクトルを表示すると標準出力が長くなるので、代わりにshapeを実行してみます。apple.vector.shapeまた、2ベクトル間を計算し、類似度を算出できます。aren't.")udon.similarity(apple)最後に今回は自然言語処理のライブラリを紹介しました。日本人向けには難しい状態でありますが、開発が進んでいるので、試しに使ってみてはいかがでしょうか。00:00Pythonで自然言語処理のタスクをやってみる。週末の発表資料も作っています...2016-12-25クリスマスにもなってカノジョがいないからカノジョを作ってみた。お元気ですか?私はぼっちです。