各term
には、用語頻度、ドキュメントID、および位置のリストがあるようです。そうですか?あなたがあるとして辞書の
dct['wassup']['termfreq']
# 'daily'
考えると用語頻度を調べることができ、「wassup」のようその後
dct = { 'wassup' : {
'termfreq' : 'daily',
'docid' : 1,
'pos' : [3,4] }}
、用語与えられ、:もしそうなら、あなたはdictsの辞書を使用することができます電話帳のように。キー(名前)を与えられた値(電話番号)を調べることは素晴らしいことです。値を与えられたキーを調べるのはあまり熱くない。一方的な方向に物事を見る必要があることを知っているときは、dictを使います。ルックアップパターンがより複雑な場合は、他のデータ構造(おそらくデータベース?)が必要な場合があります。
また、Natural Language Toolkit (nltk)をチェックアウトすることもできます。これは、内蔵のmethod for calculating tf_idf
があります
import nltk
# Given a corpus of texts
text1 = 'Lorem ipsum FOO dolor BAR sit amet'
text2 = 'Ut enim ad FOO minim veniam, '
text3 = 'Duis aute irure dolor BAR in reprehenderit '
text4 = 'Excepteur sint occaecat BAR cupidatat non proident'
# We split the texts into tokens, and form a TextCollection
mytexts = (
[nltk.word_tokenize(text) for text in [text1, text2, text3, text4]])
mycollection = nltk.TextCollection(mytexts)
# Given a new text
text = 'et FOO tu BAR Brute'
tokens = nltk.word_tokenize(text)
# for each token (roughly, word) in the new text, we compute the tf_idf
for word in tokens:
print('{w}: {s}'.format(w = word,
s = mycollection.tf_idf(word,tokens)))
利回り
et: 0.0
FOO: 0.138629436112
tu: 0.0
BAR: 0.0575364144904
Brute: 0.0
私は、私がtextrankを実装できるようになるピクルスファイルを構築し、TF-IDFおよび法的文書のコーパスを検索しようとしています - ので、私はそれが鍵から価値へ - ある方向に進むと考えています。あなたのソリューションはそのトリックを行うようです。どうもありがとう。 (これは私の最初の週のpython(実際には任意の言語でプログラミング)を使用しているので、私はおそらく近い将来ここに戻ってくるだろう:)) – root
ありがとう。あなたのコードにバイグラムとトリグラムを追加しました。トピックを少し離れているので、投稿する場所は不明です。 – root
新しい質問であれば、新しい質問を投稿してください。そうでない場合は、https://gist.github.com/に投稿し、ここにリンクを追加することができます。 – unutbu