【问题标题】:How to apply pandas data on word2vec如何在 word2vec 上应用熊猫数据
【发布时间】:2021-08-20 02:47:33
【问题描述】:

我正在尝试使用 W2V。 我将预处理的数据保存为 pandas 数据框,我想将 word2vec 算法应用于我的预处理数据。

这是我的数据。 http://naver.me/IFjLAHld

这是我的代码。

from gensim.models.word2vec import Word2Vec
import pandas as pd
import numpy as np

df = pd.read_excel('re_nlp0820.xlsx')

model = Word2Vec(df['nlp'],
                 sg=1,           
                 window=3,       
                 min_count=1,     
                 workers=4,       
                 iter=1)        
model.init_sims(replace=True) 

model_result1 = model.wv.most_similar('국민', topn =20)  
print(model_result1)

请帮帮我

【问题讨论】:

    标签: pandas nlp word2vec word


    【解决方案1】:

    Gensim 的 Word2Vec 需要一个可重复的序列作为其训练语料库,其中每个项目都是一个单词列表。

    df['nlp'] 可能只是一个字符串序列,所以它的格式不正确。你应该确保它的每个项目都被分解成一个 Python list,其中包含你想要的单词作为单独的字符串。

    (另外:min_count=1 使用此算法几乎总是一个坏主意,如果丢弃具有少量用法示例的稀有词,它会提供更好的结果。而且,您根本不需要调用 .init_sims()。)

    【讨论】:

    • 非常感谢!我现在需要做的就是找到一种方法将 pandas 数据转换为单独的列表数据。其实我不知道如何将熊猫数据转换为单独的列表数据。我也会应用其他建议。谢谢
    【解决方案2】:

    首先,您需要将传递给 Word2Vec 实例的数据转换为一个嵌套列表,其中每个列表都包含文本的标记化形式。你可以这样做:

    from gensim.models.word2vec import Word2Vec
    import pandas as pd
    import numpy as np
    import nltk
    
    df = pd.read_excel('re_nlp0820.xlsx')
    
    nlp = [nltk.word_tokenize(i) for i in df['nlp]]
    
    model = Word2Vec(nlp,
                     sg=1,           
                     window=3,       
                     min_count=1,     
                     workers=4,       
                     iter=1)        
    model.init_sims(replace=True) 
    
    model_result1 = model.wv.most_similar('국민', topn =20)  
    print(model_result1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-13
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      • 2023-01-26
      • 2020-02-17
      相关资源
      最近更新 更多