В чем разница между MWE Tokenizer и countvectorizer+ngram?Python

Программы на Python
Anonymous
В чем разница между MWE Tokenizer и countvectorizer+ngram?

Сообщение Anonymous »

Просматривая документацию по ngrams и различным векторизаторам, я наткнулся на токенизатор многословных выражений (MWETokenizer), который находит фразы в тексте и преобразует их в один токен.

Код: Выделить всё

from nltk.tokenize import MWETokenizer

sents = "in a nutshell"

mwe_tok = MWETokenizer()
mwe_tok.add_mwe(sents)
output = mwe_tok.tokenize(sents.split(" "))
результатом будет строка из трех слов, объединенных знаком "_".

Код: Выделить всё

["in", "a", "nutshell"] -> ["in_a_nutshell"]
здесь можно использовать векторизатор документов для определения частоты слов. Я заметил, что это можно сделать аналогичным образом, если установить значение ngram больше 1.

Код: Выделить всё

from nltk import ngrams

sents = "in a nutshell"
grams = ngrams(sents.split(), 3)
результатом будет кортеж из трех слов

Код: Выделить всё

["in", "a", "nutshell"] -> ("in", "a", "nutshell")
Код ngram, расположенный в CountVectorizer

Код: Выделить всё

count_vectorizer = CountVectorizer(ngram_range=(1, 3))
Каковы преимущества использования MWE по сравнению с установкой диапазона ngram? имеет ли это значение или эти двое выполняют одну и ту же функцию по-разному?
это скорее вопрос методологии и попытки понять, почему одна задача выполняется лучше другой или одна задача лучше, чем другой.

Подробнее здесь: https://stackoverflow.com/questions/786 ... rizerngram

Вернуться в «Python»