我想在使用python和gensim的英文維基百科上訓練word2vec模型。我密切關注着https://groups.google.com/forum/#!topic/gensim/MJWrDw_IvXw。禁用Gensim在解析wiki語料庫時刪除標點符號等
它適用於我,但我不喜歡產生的word2vec模型是命名實體被拆分,使得模型對我的特定應用程序不可用。我需要的模型必須將命名實體表示爲單個向量。
這就是爲什麼我計劃用spacy解析維基百科文章並將諸如「north carolina」之類的實體合併到「north_carolina」中,以便word2vec將它們表示爲單個向量。到現在爲止還挺好。
的spacy解析必須是預處理,這本來我作爲鏈接討論使用建議的一部分:
...
wiki = WikiCorpus(wiki_bz2_file, dictionary={})
for text in wiki.get_texts():
article = " ".join(text) + "\n"
output.write(article)
...
這消除了標點符號,停用詞,數字和大寫並將其保存在每篇文章單獨的行生成輸出文件。問題在於,這個預處理的文本中,spacy的NER並不真正起作用,因爲我猜它依賴於NER(?)的標點符號和大寫字母。
有誰知道我是否可以「禁用」gensim的預處理,以便它不會刪除標點符號等,但仍然直接從壓縮的維基百科轉儲解析維基百科文章到文本?或者有人知道一個更好的方法來完成這個?提前致謝!
更新:我從Gensim複製了WikiCorpus類,自己在需要它們的地方添加spaCy操作。現在,這似乎是要走的路,如果你想改變gensim預處理維基百科文本的方式 – marlonfl
順便說一句,如果你已經實現了這個並解決了這個問題,如果你可以在這裏分享這個方法,那將是非常好的。 – sophros