- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 NLP 应用程序,其中有一个文本文件语料库。我想使用 创建词向量Gensim word2vec 算法 .
我做了 90% 的训练和 10% 的测试拆分。我在适当的集上训练了模型,但我想评估模型在测试集上的准确性。
我在互联网上浏览过任何关于准确性评估的文档,但我找不到任何允许我这样做的方法。有谁知道进行精度分析的函数?
我处理测试数据的方式是从测试文件夹中的文本文件中提取所有句子,并将其变成一个巨大的句子列表。在那之后,我使用了一个我认为是正确的函数(事实证明它不是因为它给了我这个错误: TypeError: 不知道如何处理 uri )。这是我如何去做的:
test_filenames = glob.glob('./testing/*.txt')
print("Found corpus of %s safety/incident reports:" %len(test_filenames))
test_corpus_raw = u""
for text_file in test_filenames:
txt_file = open(text_file, 'r')
test_corpus_raw += unicode(txt_file.readlines())
print("Test Corpus is now {0} characters long".format(len(test_corpus_raw)))
test_raw_sentences = tokenizer.tokenize(test_corpus_raw)
def sentence_to_wordlist(raw):
clean = re.sub("[^a-zA-Z]"," ", raw)
words = clean.split()
return words
test_sentences = []
for raw_sentence in test_raw_sentences:
if len(raw_sentence) > 0:
test_sentences.append(sentence_to_wordlist(raw_sentence))
test_token_count = sum([len(sentence) for sentence in test_sentences])
print("The test corpus contains {0:,} tokens".format(test_token_count))
####### THIS LAST LINE PRODUCES AN ERROR: TypeError: don't know how to handle uri
texts2vec.wv.accuracy(test_sentences, case_insensitive=True)
最佳答案
accuracy()
gensim
的方法词向量模型(与 evaluate_word_analogies()
相比现在不受欢迎)不会将您的文本作为输入 - 它需要一个特定格式的词类比挑战文件。这个文件通常被命名为 questions-words.txt
.
这是一种测试通用词向量的流行方法,可以追溯到 Google 的原始 Word2Vec 论文和代码发布。
但是,此评估并不一定表明哪些词向量最适合您的需求。 (例如,一组词向量可能在这些类比上得分更高,但对于特定分类或信息检索目标则更糟。)
为了您自己的目的的良好向量,您应该设计一些特定于任务的评估,它给出与您的最终目标的成功相关的分数。
另请注意,作为无监督算法,词向量不一定需要保留测试集才能进行评估。您通常希望使用尽可能多的数据来训练词向量——确保最大的词汇覆盖率,每个词的示例最多。然后,您可能会根据某个外部标准测试词向量——比如类比问题,它们根本不是训练集的一部分。
或者,您只需将词向量用作您正在测试的某些下游任务的附加输入,并且在该下游任务中,您将保留用于训练某些监督算法的测试集。这确保您的监督方法不仅仅是记住/过度拟合标记的输入,并且为您提供关于该词向量集是否有助于下游任务的间接质量信号。 (而且,该词向量集可以根据它们对其他监督任务的帮助程度与其他词向量集进行比较,而不是与它们自己相同的无监督训练步骤进行比较。)
关于python - Word2vec Gensim 准确度分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52734146/
比方说, word2vec.model 是我训练好的 word2vec 模型。当出现词汇外单词( oov_word )时,我计算向量 vec 使用 compute_vec(oov_word) 方法。现
我有一个现有的 gensim Doc2Vec 模型,我正在尝试对训练集以及模型进行迭代更新。 我拿新文件,照常进行预处理: stoplist = nltk.corpus.stopwords.words
使用 gensim.models.LdaMallet 有什么区别和 gensim.models.LdaModel ?我注意到参数并不完全相同,想知道什么时候应该使用一个而不是另一个? 最佳答案 TL;
我训练了一个 gensim.models.doc2vec.Doc2Vec 模型 d2v_model = Doc2Vec(sentences, size=100, window=8, min_count
我在 gensim 中有一个 word2vec 模型,训练了 98892 个文档。对于句子数组中不存在的任何给定句子(即我训练模型的集合),我需要用该句子更新模型,以便下次查询时给出一些结果。我这样做
我对 Gensim 很陌生,我正在尝试使用 word2vec 模型训练我的第一个模型。我看到所有参数都非常简单易懂,但是我不知道如何跟踪模型的损失以查看进度。此外,我希望能够在每个 epoch 之后获
请帮助我理解如何 TaggedDocument 之间的区别和 LabeledSentence的 gensim作品。我的最终目标是使用 Doc2Vec 进行文本分类模型和任何分类器。我正在关注这个 bl
尝试使用以下代码行在 gensim 中加载文件: model = gensim.models.KeyedVectors.load_word2vec_format(r"C:/Users/dan/txt_
我有一组用神经网络训练的嵌入,与 gensim 的 word2vec 无关。 我想使用这些嵌入作为 gensim.Word2vec 中的初始权重。 现在我看到的是,我可以model.load(SOME
我尝试使用 gensim 导入 import gensim 但出现以下错误 ImportError Traceback (most rece
我正在关注 https://radimrehurek.com/gensim/wiki.html#latent-dirichlet-allocation 上的“英语维基百科”gensim 教程 它解释了
我正在使用 24 核虚拟 CPU 和 100G 内存来训练 Doc2Vec 与 Gensim,但无论修改核数,CPU 的使用率始终在 200% 左右。 top htop 上面两张图显示了cpu使用率,
在将文本文档列表转换为语料库字典,然后使用以下方法将其转换为词袋模型之后: dictionary = gensim.corpora.Dictionary(docs) # docs is a list
我已经使用 Gensim 3.8.0 训练了一个 Word2Vec 模型。后来我尝试在 GCP 上使用使用 Gensim 4.0.o 的预训练模型。我使用了以下代码: model = KeyedVec
我正在构建一个多标签文本分类程序,我正在尝试使用 OneVsRestClassifier+XGBClassifier 对文本进行分类。最初,我使用 Sklearn 的 Tf-Idf 矢量化来矢量化文本
我发现关于 word2vec.similarity() 的警告如下: >d:\python\lib\site-packages\gensim\matutils.py:737: FutureWarnin
我正在尝试使用版本为 3.6 的 Python 的 Gensim 库运行程序。 每当我运行该程序时,我都会遇到这些语句: C:\Python36\lib\site-packages\gensim-2.
我有一个通过 Java 中的 Mallet 训练的 LDA 模型。 Mallet LDA 模型生成了三个文件,这使我能够从文件运行模型并推断新文本的主题分布。 现在我想实现一个 Python 工具,它
我正在使用gensim doc2vec。我想知道是否有任何有效的方法来了解doc2vec的词汇量。一种粗略的方法是计算单词总数,但是如果数据量很大(1GB或更多),那么这将不是一种有效的方法。 最佳答
documentation有点不清楚如何将 fasttext 模型保存到磁盘 - 如何在参数中指定路径,我尝试这样做,但失败并出现错误 文档中的示例 >>> from gensim.test.util
我是一名优秀的程序员,十分优秀!