Skip to content

ushiku/text2feature

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

text2feature

概要


このライブラリでは、日本語のraw textから文書分類などに使えるように素性の取り出しを行います。

自然言語処理において、与えられた文書を素性としてベクトル空間に配置することは非常に重要な技術の一つです。 文書ベクトル同士の類似度は、文書そのもの同士の類似度と関係があると考えられ、文書分類などのタスクにおいて多く利用されています。 このような技術は学問の場のみならず、企業においても実際に使われています。 例えば、ニュース記事がどのジャンルに所属するかのクラスタリングや、とある投稿のポジネガ判定などです。

一番メジャーな素性にする方法としては、BoW(Bag-of-words)があります。これは、語彙数次元のベクトルを用意し、文書中に出現した語彙に対応する 部分の値を1、出現しない語彙の値を0にするものです。 これに追加して、tf値、idf値を計算したものもあります。 簡単な方法としては、このように文書をベクトル化した後、cos類似度を計算することで、文書間の類似度を計算できます。

日本語はわかち書きされていない言語です。そのため、多くの自然言語処理では、文書を単語に分割する形態素解析という処理を行います。 多くの形態素解析機がありますが、本ライブラリではKyTeaを利用しています。

また、単語分割のみならず構文解析された素性を利用することでより、文の意味を捉えた解析がでできると考えられます。 このライブラリでは、構文解析機EDAをもちいて、かかり受け情報を含む素性を出力できます。

仕様


素性

  • unigram: 語彙数次元のBoWベクトルを作成

  • bigram: 連結する2単語を繋げたBoWベクトルを作成 (例) 彼は元気です -> 彼は, は元気, 元気です

  • trigram: 連結する3単語を繋げたBoWベクトルを作成

  • depbigram: かかり元とかかり先を繋げたBoWベクトルを作成

  • deptrigram: かかり元、かかり先、かかり先のかかり先を繋げたBoWベクトルを作成

  • count/tfidf: ベクトルをBoWかtfidfかで作る。tfidfはscikit-learnを利用しています。

corpus

必要なcorpusは二つです。 ベクトルにしたいターゲットの文書corpusと、tfidfなどのcorpusです。

model

必要なモデルは、KyTea, EDAのモデルです。対象のテキストにAdaptationしたmodelの利用が望まれます。

Install

Python3.4.3で動作確認をしています。Python2系統では残念ながら利用できません。 必要ライブラリなど

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages