Модель для распознавания многословных выражений? ⇐ Python

Программы на Python
Anonymous
Модель для распознавания многословных выражений?

Сообщение Anonymous »

Существует ли модель или библиотека с готовым репозиторием многословных выражений?
Я пытаюсь подсчитать слова в серии абзацев, но хотел бы включить ngrams. Однако я столкнулся с проблемой, так как некоторые из моих предложений содержат биграммы и триграммы, которые имеют больше смысла, чем просто монограммы.
Я думал просто составить серию нграмм и выполнить подсчет. но это приводит к пересчету.
пример с использованием ngrams
import nltk

sentences = ["the dog jumped over the green car and into the market place",
"the cat was sleeping in the market place",
"the man in a green car was waiting near the market place"]

word_counts = {}
for sentence in sentences:
word_list = nltk.word_tokenize(sentence)
ngrams = nltk.everygrams(word_list, 1, 3)
for word in ngrams:
if word not in word_counts.keys():
word_counts[word] = 0
word_counts[word] += 1

результат
{('the',): 7, ('the', 'dog'): 1, ('the', 'dog', 'jumped'): 1, ('dog',): 1, ('dog', 'jumped'): 1, ('dog', 'jumped', 'over'): 1 ...

Я также рассматривал возможность использования mwetokenizer, и хотя он делает то, что я хочу, я столкнулся с проблемой, когда мне нужно определить MWE.
пример с использованием мветокенайзер
from nltk.tokenize import MWETokenizer

mwe_tokenizer = MWETokenizer()
mwe_tokenizer.add_mwe(('green','car'))
mwe_tokenizer.add_mwe(('market', 'place'))

word_counts = {}
for sentence in sentences:
word_list = nltk.word_tokenize(sentence)
new_word_list = mwe_tokenizer.tokenize(word_list)
for word in new_word_list:
if word not in word_counts.keys():
word_counts[word] = 0
word_counts[word] += 1

результат
{'the': 7, 'dog': 1, 'jumped': 1, 'over': 1, 'green_car': 2, 'and': 1, 'into': 1, 'market_place': 3, ...


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

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