У векторизатора Tf-idf есть пробелы в характерных словах с char_wb? - PullRequest
0 голосов
/ 22 января 2019

Я использую

singleTFIDF = TfidfVectorizer(analyzer='char_wb', ngram_range= 
(4,6),stop_words=my_stop_words, max_features=50).fit([text])

и удивляюсь, почему в моих функциях, таких как 'chaft', есть пробелы

Как мне этого избежать? Нужно ли мне самому преобразовывать и обрабатывать текст?

1 Ответ

0 голосов
/ 22 января 2019

Используйте analyzer='word'.

Когда мы используем char_wb, векторизатор дополняет пробел, потому что он не будет разбит на токены в отношении слов проверки с character_n_grams.

Согласно Документация:

анализатор: строка, {'word', 'char', 'char_wb'} или вызываемая функция

Должна ли функция быть составлена ​​из n-граммов слова или символа.Опция 'char_wb' создает n-граммы символов только из текста внутри границ слова;n-граммы на краях слов дополняются пробелом.

Посмотрите на следующий пример, чтобы понять, как использовать вывод

from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]
vectorizer = TfidfVectorizer(analyzer='char_wb', ngram_range= (4,6))
X = vectorizer.fit_transform(corpus)
print([(len(w),w) for w in vectorizer.get_feature_names()])

:

[(4, 'и'), (5, 'и'), (4, 'документ'), (5, 'документ'), (6, 'документ'), (4, 'пихта'), (5, «первый»), (6, «первый»), (4, «есть»), (4, «один»), (5, «один.»), (6, «один»), (4, «sec»), (5, «seco»), (6, «second»), (4, «the»), (5, «the»), (4, «thi»), (5, 'thir'), (6, 'третий'), (5, 'это'), (6, 'это'), (4, 'и'), (4, 'cond'), (5,'cond'), (4, 'cume'), (5, 'cumen'), (6, 'cument'), (4, 'document'), (5, 'docum'), (6, 'documentme'), (4,' econ '), (5,' econd '), (6,' econd '), (4,' ent '), (4,' ent. '), (5,' ent.'), (4,' ent? '), (5,' ent? '), (4,' firs '), (5,' first '), (6,' first '), (4,' hird'), (5,' hird '), (4,' his '), (4,' ird '), (4,' irst '), (5,' irst '), (4,' ment '), (5, 'ment'), (5, 'ment.'), (6, 'ment.'), (5, 'ment?'), (6, 'ment?'), (4, 'ne. '), (4,' nt. '), (4,' nt? '), (4,' ocum '), (5,' ocume '), (6,' ocumen '), (4,' ond '), (4,' один. '), (5,' один.'), (4,' первый '), (4,' seco '), (5,' второй '), (6,' второй '), (4,' the '), (4,' thir '), (5, «третий»), (6, «третий»), (4, «это»), (5, «это»), (4, «умен»), (5, «умент»), (6, «ument»), (6, «ument.»), (6, «ument?»)]

...