Snowball Stemmer: плохой французский язык - PullRequest
0 голосов
/ 29 июня 2018

Я имею дело с некоторыми задачами 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 Ответ

0 голосов
/ 29 июня 2018

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'
...