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
因之而闻名。)
我开始熟悉 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
因之而闻名。)