タグ クラウドを準備するために、テキストから最も関連性の高い単語を取得したいと考えています。
scikit-learn パッケージの CountVectoriser を使用しました。
cv = CountVectorizer(min_df=1, charset_error="ignore",
stop_words="english", max_features=200)
単語と頻度を教えてくれるので、これはいいですね:
counts = cv.fit_transform([text]).toarray().ravel()
words = np.array(cv.get_feature_names())
頻度の低い単語を除外できます。
words = words[counts > 1]
counts = counts[counts > 1]
数字である言葉と同様に:
words = words[np.array(map(lambda x: x.isalpha(), words))]
counts = counts[np.array(map(lambda x: x.isalpha(), words))]
しかし、まだ完璧ではありません...
私の質問は次のとおりです。
- 動詞を除外するには?
- 同じ単語の異なる形式を取り除くためにステミングを実行する方法は?
- CountVectoriser を呼び出して 2 文字の単語を除外する方法は?
次の点にも注意してください。
- 私はnltkで問題ありませんが、「nltkを試してみてください」のような答えは答えではありません。コードを教えてください。
- モデルのトレーニングを必要とするベイジアン分類器やその他の手法は使用したくありません。私には時間がありませんし、分類器をトレーニングするための例もありません。
- 言語は英語です