Проблема: использование scikit-learn для определения количества совпадений переменных n-грамм определенного словаря.
Объяснение. Я получил примеры из здесь .
Представьте, что у меня есть корпус, и я хочу найти, сколько хитов (считая) имеет словарный запас, как следующий:
myvocabulary = [(window=4, words=['tin', 'tan']),
(window=3, words=['electrical', 'car'])
(window=3, words=['elephant','banana'])
То, что я называю здесь окном, это длина интервала слов, в котором могут появляться слова. следующим образом:
удар оловянного загара (в пределах 4 слов)
удар оловянного загара (в течение 4 слов)
'загара оловянный догпопадание (в пределах 4 слов)
'загар солнечного затмения автомобиля' НЕ поражен. tin и tan появляются на расстоянии более 4 слов друг от друга.
Я просто хочу посчитать, сколько раз (window = 4, words = ['tin', 'tan']) появляется в тексте ито же самое для всех остальных, а затем добавить результат в панд для расчета алгоритма TF-IDF. Я мог найти только что-то вроде этого:
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(vocabulary = myvocabulary, stop_words = 'english')
tfs = tfidf.fit_transform(corpus.values())
, где словарь - это простой список строк, состоящий из отдельных слов или нескольких слов.
помимо от scikitlearn:
class sklearn.feature_extraction.text.CountVectorizer
ngram_range : tuple (min_n, max_n)
Нижняя и верхняя граница диапазона значений n для различных извлекаемых n-граммов. Будут использованы все значения n такие, что min_n <= n <= max_n. </p>
тоже не поможет.
Есть идеи? Спасибо.