Источник кода
from nltk.tokenize import MWETokenizer
tokenizer = MWETokenizer([('a', 'little'), ('a', 'little', 'bit'), ('a', 'lot')])
tokenizer.add_mwe(('in', 'spite', 'of'))
tokenizer.tokenize('In a little or a little bit or a lot in spite of'.split())
>>> ['In', 'a_little', 'or', 'a_little_bit', 'or', 'a_lot', 'in_spite_of']
Приведенный выше фрагмент кода обрабатывает несколько слов при маркировке текста.Но является ли это необходимым шагом при попытке представить тексты в векторном пространстве?
Для моей конкретной задачи у меня есть такие слова, как rig down
против rig up
, lay down
против pick up
, nipple down
против nipple up
, и они означают совершенно разные вещи.
Я пытаюсь реализовать скип-грамм, CBOW, TF-IDF или матрицу совместного использования.Эти алгоритмы автоматически вносят исправления в выражения из нескольких слов?или мне нужно жестко закодировать некоторые важные выражения из нескольких слов?