Snowball Stemmer: плохой французский язык
Я имею дело с некоторыми задачами NLP. Мои входные данные представляют собой текст на французском языке, поэтому в моем контексте можно использовать только Snowball Stemmer. Но, к сожалению, он продолжает давать мне плохие стебли, поскольку это не удалит даже plural "s"
или же silent e
, Ниже приведен пример:
from nltk.stem import SnowballStemmer
SnowballStemmer("french").stem("pommes, noisettes dorées & moelleuses, la boîte de 350g")
Output: 'pommes, noisettes dorées & moelleuses, la boîte de 350g'
1 ответ
Решение
Stemmers используют слова, а не предложения, так что разбивайте предложение на части и подбирайте токены по отдельности.
>>> from nltk import word_tokenize
>>> from nltk.stem import SnowballStemmer
>>> fr = SnowballStemmer('french')
>>> sent = "pommes, noisettes dorées & moelleuses, la boîte de 350g"
>>> word_tokenize(sent)
['pommes', ',', 'noisettes', 'dorées', '&', 'moelleuses', ',', 'la', 'boîte', 'de', '350g']
>>> [fr.stem(word) for word in word_tokenize(sent)]
['pomm', ',', 'noiset', 'dor', '&', 'moelleux', ',', 'la', 'boît', 'de', '350g']
>>> ' '.join([fr.stem(word) for word in word_tokenize(sent)])
'pomm , noiset dor & moelleux , la boît de 350g'