我开始熟悉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)
答案 0 :(得分:0)
代替
text=['schottky','diode','semiconductors']
使用此
text=[['schottky','diode','semiconductors']]
更多信息:Gensim word2vec
答案 1 :(得分:0)
Word2Vec
需要训练语料库作为其sentences
参数:
如果仅提供字符串列表,则每个字符串都将被视为一个字符字符串列表,从而得到您所看到的所有一个字母的单词。
因此,请使用单词列表,更像是:
[
['schottky','diode','semiconductors'],
]
(还请注意,对于只有几个文本,几十到数百个单词的微型玩具大小的数据集,通常不会得到有趣的Word2Vec
结果。您需要成千上万个独特的单词,其中包括每个单词有许多相反的示例,以得出Word2Vec
众所周知的有用的单词向量排列。)