Я пытался найти способ получить все биграммы из фрагмента текста, которые не обязательно являются последовательными словами, но разделены на N слов в тексте, используя python.Хотя я нашел много ответов о том, как найти последовательные биграммы, я не нашел четкого ответа относительно непоследовательных биграмм.
Я использовал sklearn
и CountVectorizer
, как код ниже, чтобы найти мои биграммы, но я не знаю, сможет ли он выполнить эту задачу.
from sklearn.feature_extraction.text import CountVectorizer
#finding bigrams and their frequency
bigram_vectorizer = CountVectorizer(ngram_range=(2,2))
X = bigram_vectorizer.fit_transform(["i love coding with python"])
print(bigram_vectorizer.get_feature_names())
bigram_frequency = X.toarray()
Что печатает:
["i love", "love coding", "coding with", "with python"]
Ожидаемый результат, при наличии фрагмента текста sentence= "i love coding with python"
должен возвращать что-то вроде:
[('i', 'love'), ('i', 'coding'), ('i', 'with'), ... ,('coding', 'with'),
('coding', 'python'), ('with', 'python')]