【问题标题】:PYTHON: Extract Non-English words and iterate it over a dataframePYTHON:提取非英语单词并在数据帧上迭代
【发布时间】:2021-08-16 04:08:35
【问题描述】:

我有一个大约 30,000 行的表,需要从 dummy_df 数据帧中名为 dummy_df 的列中提取非英语单词。我需要将非英语单词放在名为non_english 的相邻列中。一个虚拟数据是这样的:

dummy_df = pandas.DataFrame({'outcome':    ["I want to go to church",  "I love Matauranga", "Take me to  Oranga Tamariki"]})

我的想法是从句子中提取非英语单词,然后在数据帧上迭代该过程。我能够用这段代码准确地从句子中提取非英语单词:

import nltk
nltk.download('words')
from nltk.corpus import words

words = set(nltk.corpus.words.words())

sent = "I love Matauranga"
" ".join(w for w in nltk.wordpunct_tokenize(sent) \
         if not w.lower() in words or not w.isalpha())

以上代码的结果是'Matauranga',完全正确。

但是当我尝试使用此代码在数据帧上迭代代码时:

import nltk
nltk.download('words')
from nltk.corpus import words

def no_english(text):
  words = set(nltk.corpus.words.words())
  " ".join(w for w in nltk.wordpunct_tokenize(text['outcome']) \
         if not w.lower() in words or not w.isalpha())

dummy_df['non_english'] = dummy_df.apply(no_english, axis = 1)
print(dummy_df)

我得到了一个不受欢迎的结果,因为 non_english 列具有 none 值而不是所需的非英语单词(见下文):

                       outcome non_english
0       I want to go to church        None
1            I love Matauranga        None
2  Take me to  Oranga Tamariki        None
3                                     None

相反,期望的结果应该是:

                       outcome        non_english
0       I want to go to church        
1            I love Matauranga        Matauranga
2  Take me to  Oranga Tamariki        Oranga Tamariki

需要帮助。谢谢。

【问题讨论】:

    标签: python pandas text nlp nltk


    【解决方案1】:

    您的函数中缺少return

    import nltk
    nltk.download('words')
    from nltk.corpus import words
    
    def no_english(text):
        words = set(nltk.corpus.words.words())
        return " ".join(w for w in nltk.wordpunct_tokenize(text['outcome']) \
               if not w.lower() in words or not w.isalpha())
    
    dummy_df['non_english'] = dummy_df.apply(no_english, axis = 1)
    print(dummy_df)
    

    输出:

                           outcome      non_english
    0       I want to go to church                 
    1            I love Matauranga       Matauranga
    2  Take me to  Oranga Tamariki  Oranga Tamariki
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 2013-09-17
      • 2011-07-20
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      相关资源
      最近更新 更多