2016-04-06 4 views
1

私はNLTKでステムマーとリーマイタイザーの束を試してきましたが、私は何もしません。私は、 "放射線科医"、 "放射線科医"、 "心臓病学者"、 "心臓病学"などのような言葉をたくさん持っています... * ologistは* ologyと同じバケツに行きます。私はPorterStemmer、SnowballStemmer、WordNetのLemmatizerをPythonで試しましたが、何も同じバケットに送りません。これはステミングがこれを達成するはずだと思われますが、これは信じられないほど珍しい言葉ではありません。希望の結果を達成するにはどうしたらいいですか?* ologistや* ologyのような言葉をどのようにして同じ根に幹/字形にするか?

答えて

0

このようなものはありますか?

>>> s = 'cardiology' 
>>> s = s[:-5] if s.endswith('ology') else s 
>>> s = s[:-7] if s.endswith('ologist') else s 
>>> s 
'cardi' 
>>> s = 'cardiologist' 
>>> s = s[:-5] if s.endswith('ology') else s 
>>> s = s[:-7] if s.endswith('ologist') else s 
>>> s 
'cardi' 
+0

私はそれが私が意味するものではありません知っている。 – Eli

+1

実際には、既存のレーマタイザー/ステムマーを「ハックする」最適な方法を見つけるために、データがどのように見えるかによって異なります。あなたのデータの代表的なサンプルを共有することは、答えを改善するのに役立ちます=) – alvas

1

あなたはMorfessorを見ましたか?それはモーフセグメンテーションアルゴリズムの束を特色にしています。明らかに、このツールを使用して、探している分析の種類が可能です。ここにリンク[1]です:http://asr.aalto.fi/morfessordemo/

関連する問題