0

В scikit learn или nltk классификатор обычно рассматривают термин частота или TF-IDF.Есть ли класс, который работает как на уровне слов, так и на уровне предложения?

Я хочу также рассмотреть термин частота, а также структуру предложения для классификации. У меня есть 15 вопросов. Каждый с текстовым файлом, содержащим предложение с новыми строками.

Категория город содержит эту фразу:

In which city Obama was born? 

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

1. In which place Hally was born 2. In which city Hally was born? 

Есть ли классификатор, который считает как термин частота, а структура предложения. Поэтому при обучении он также классифицирует входной запрос с аналогичной структурой предложения.

ответ

2

Вы также можете обучить tf-idf на ngrams, в дополнение к униграммам. В Scikit Learn вы можете указать ngram_range, который будет принят во внимание: если вы настроите его на обучение до 3 грамм, вы в конечном итоге сохраните частоту для комбинаций слов, таких как «В каком месте», которое довольно показательный тип вопроса, который задан.

1

Как drekyn сказал, что вы можете использовать Scikit узнать для извлечения особенностей здесь некоторые примеры:

>>> bigram_vectorizer = CountVectorizer(ngram_range=(1, 2), 
...          token_pattern=r'\b\w+\b', min_df=1) 
>>> analyze = bigram_vectorizer.build_analyzer() 
>>> analyze('Bi-grams are cool!') == (
...  ['bi', 'grams', 'are', 'cool', 'bi grams', 'grams are', 'are cool']) 
True 

Source

Смежные вопросы