亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Word2vec Gensim 準確度分析

Word2vec Gensim 準確度分析

楊__羊羊 2021-07-08 14:11:57
我正在開發一個 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 wordstest_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)我不知道如何解決這最后一部分。請幫忙。提前致謝!
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

accuracy()一個方法gensim字向量模型(現在的冷遇相比evaluate_word_analogies())不會把你的文本輸入-它需要的字,類推挑戰專門格式的文件。這個文件通常被命名為questions-words.txt.

這是一種測試通用詞向量的流行方法,可以追溯到 Google 的原始 Word2Vec 論文和代碼發布。

但是,此評估不一定表明哪些詞向量最適合您的需求。(例如,一組詞向量可能在這些類比上得分更高,但對于特定分類或信息檢索目標則更糟。)

為了您自己的目的的良好向量,您應該設計一些特定于任務的評估,它給出與您的最終目標的成功相關的分數。

另請注意,作為無監督算法,詞向量不一定需要保留測試集才能進行評估。您通常希望使用盡可能多的數據來訓練詞向量——確保最大的詞匯覆蓋率,每個詞的示例最多。然后,您可能會根據某個外部標準測試詞向量——比如類比問題,它們根本不是訓練集的一部分。

或者,您只需將詞向量用作您正在測試的某些下游任務的附加輸入,并且在該下游任務中,您將保留用于訓練某些監督算法的測試集。這確保您的監督方法不僅僅是記住/過度擬合標記的輸入,并且為您提供關于該詞向量集是否有助于下游任務的間接質量信號。(而且,該詞向量集可以根據它們對其他監督任務的幫助程度與其他詞向量集進行比較,而不是與它們自己相同的無監督訓練步驟進行比較。)



查看完整回答
反對 回復 2021-07-13
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

Gensim 具有用于測試數據的各種其他指標,使用它們,您可能可以在幾行代碼中定義自己的函數。例如,除了models.wv.analogy()evaluate_word_analogies,也有類似的功能evaluate_word_pairs,closer_than(),distance()most_similar()等(請參閱該文檔的models.keyedvector更多細節。)這些功能,也許單獨或作為更大的功能部分用來評估你的話的嵌入。希望這可以幫助!


查看完整回答
反對 回復 2021-07-13
  • 2 回答
  • 0 關注
  • 287 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號