Gensim Word2Vec词汇:输出不清楚

时间:2019-07-04 13:49:34

标签: python python-3.x text-mining gensim word2vec

我开始熟悉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',...]

我还希望单词与文本列表中的单词相同,而不仅仅是一些字符。当我尝试查找单词(例如“肖特基”和“二极管”)之间的关系时,出现错误消息,这些单词中没有一个包含在单词中。

我首先想到的是导入错误,但是使用textract而不是PyPDF2可以得到相同的结果。

有人知道出什么问题吗?感谢您的帮助!

附录:

导入书

content_text = [] number_of_inputs = len(os.listdir(path))

    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)

2 个答案:

答案 0 :(得分:0)

代替
text=['schottky','diode','semiconductors']

使用此
text=[['schottky','diode','semiconductors']]

更多信息:Gensim word2vec

答案 1 :(得分:0)

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

  • 可重复的序列(例如列表)
  • 每个项目本身就是一个字符串令牌列表

如果仅提供字符串列表,则每个字符串都将被视为一个字符字符串列表,从而得到您所看到的所有一个字母的单词。

因此,请使用单词列表,更像是:

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

(还请注意,对于只有几个文本,几十到数百个单词的微型玩具大小的数据集,通常不会得到有趣的Word2Vec结果。您需要成千上万个独特的单词,其中包括每个单词有许多相反的示例,以得出Word2Vec众所周知的有用的单词向量排列。)