Я хочу получить сходство одного документа с другими документами. Я использую Gensim. Программа может работать правильно, но после некоторых шагов она завершается с ошибкой сегментации.
Ниже мой код:
from gensim import corpora, models, similarities
docs = [['Looking', 'for', 'the', 'meanings', 'of', 'words'],
['phrases'],
['and', 'expressions'],
['We', 'provide', 'hundreds', 'of', 'thousands', 'of', 'definitions'],
['synonyms'],
['antonyms'],
['and', 'pronunciations', 'for', 'English', 'and', 'other', 'languages'],
['derived', 'from', 'our', 'language', 'research', 'and', 'expert', 'analysis'],
['We', 'also', 'offer', 'a', 'unique', 'set', 'of', 'examples', 'of', 'real', 'usage'],
['as', 'well', 'as', 'guides', 'to:']]
dictionary = corpora.Dictionary(docs)
corpus = [dictionary.doc2bow(text) for text in docs]
nf=len(dictionary.dfs)
index = similarities.SparseMatrixSimilarity(corpus, num_features=nf)
phrases = [['This',
'section',
'gives',
'guidelines',
'on',
'writing',
'in',
'everyday',
'situations'],
['from',
'applying',
'for',
'a',
'job',
'to',
'composing',
'letters',
'of',
'complaint',
'or',
'making',
'an',
'insurance',
'claim'],
['There',
'are',
'plenty',
'of',
'sample',
'documents',
'to',
'help',
'you',
'get',
'it',
'right',
'every',
'time'],
['create',
'a',
'good',
'impression'],
['and',
'increase',
'the',
'likelihood',
'of',
'achieving',
'your',
'desired',
'outcome']]
phrase2word=[dictionary.doc2bow(text,allow_update=True) for text in phrases]
sims=index[phrase2word]
Он может нормально работать до получения симов, но не может получить симов, и с помощью gdb
получает следующую информацию:
Программа получила сигнал SIGSEGV, Ошибка сегментации.
0x00007fffd881d809 в csr_tocsc (n_row = 5, n_col = 39,
Ap = 0x4a4eb10, Aj = 0x9fc6ec0, Ax = 0x1be4a00, Bp = 0xa15f6a0, Bi = 0x9f3ee80,
Bx = 0x9f85f60) при scipy / разреженных / sparsetools / csr.h: 411 411
scipy / sparse / sparsetools / csr.h: 没有 那个 文件 或 目录.
Я получил ответ от GitHub
Основная причина в том, что num_features должен совпадать со словарем .dfs
Других решений пока нет …