Gensim Word2Vec 词汇表:输出不清晰

Gensim Word2Vec Vocabulary: Unclear output

我开始熟悉 Word2Vec,但我遇到了一个问题,找不到类似的东西... 我想在导入的 PDF 文档(一本书)上使用 gensims Word2Vec。为了导入,我使用了 PyPDF2 并将整本书存储到一个列表中。此外,我使用 gensims simple_preprocess 来预处理数据。到目前为止这很有效,我得到了以下输出:

text=['schottky','diode','semiconductors',...]

然后我尝试使用 Word2Vec:

from gensim.models import Word2Vec
model=Word2Vec(text, size=100, window=5, min_count=5, workers=4)
words=list(model.wv.vocab)

但输出是这样的:

print(words)
['c','h','t','k','d',...]

我还期望与文本列表中的单词相同,而不仅仅是一些字符。当我试图找到单词之间的关系时(例如 'schottky' 和 'diode'),我得到的错误消息是 none 这些单词包含在词汇表中。

我的第一个想法是导入错误,但我用 textract 而不是 PyPDF2 得到了相同的结果。

有人知道问题出在哪里吗?感谢您的帮助!

附录:

正在导入图书

content_text=[] number_of_inputs=len(os.listdir(路径))

    file_to_open=path
open_file=open(file_to_open,'rb')
read_pdf=PyPDF2.PdfFileReader(open_file)
number_of_pages=read_pdf.getNumPages()
page_content=""
for page_number in range(number_of_pages):
    page = read_pdf.getPage(page_number)
    page_content += page.extractText()
content_text.append(page_content)

而不是
text=['schottky','diode','semiconductors']

使用这个
text=[['schottky','diode','semiconductors']]

更多信息:Gensim word2vec

Word2Vec 需要一个训练语料库作为其 sentences 参数:

  • 一个可迭代序列(例如列表)
  • 其中每个项目本身都是 string-tokens
  • 的列表

如果您只提供一个 list-of-strings,每个字符串都被视为一个 list-of-one-character-strings,导致您看到的所有 one-letter 个词。

所以,使用 list-of-lists-of-words,更像是:

[
 ['schottky','diode','semiconductors'],
]

(另请注意,您通常不会在只有几篇文本和几十到数百个单词的微小 toy-sized 数据集上获得有趣的 Word2Vec 结果。您需要数千个独特的单词,在每个单词的数十个对比示例中,归纳出有用的 word-vector 排列方式,Word2Vec 因之而闻名。)