【问题标题】:How to convert negations and single words with same repetitive letter如何转换具有相同重复字母的否定词和单个词
【发布时间】:2019-03-31 01:16:50
【问题描述】:

我有一个数据框,其中有一列包含文本数据。我想删除没有意义的单词,并将文本数据中的“不是”等否定转换为“不是”。因为当我删除标点符号时,“isn't”变为“isn t”,当我删除字母小于长度 2 的单词时,“t”将被完全删除。所以,我想做以下3个任务- 1)将“不是”之类的否定转换为“不是” 2)删除无意义的词 3) 删除长度小于 2 的字母 例如,df 列看起来与此类似-

user_id     text data column
    1        it's the coldest day
    2        they aren't going
    3        aa
    4        how are you jkhf
    5        v
    6        ps
    7       jkhf

输出应该是-

user_id     text data column
    1        it is the coldest day
    2        they are not going
    3        
    4        how are you 
    5        
    6       
    7      

如何实现?

【问题讨论】:

    标签: python-3.x nlp text-processing


    【解决方案1】:
    def is_repetitive(w):
        """Predicate, true for words like jj or aaaaa."""
        w = str(w)  # caller should have provided a single word as input
        return len(w) > 1 and all((c == w[0]  for c in w[1:]))
    

    将语料库中的所有单词提供给该函数, 积累重复单词的列表。 然后将这些词添加到您的停用词列表中。

    【讨论】:

    • 如果我必须将 df 列传递给它以查找所有此类单词,您能告诉我上述函数的语法是什么吗?尝试通过将 df 列传递给它来调用此函数时,我得到一个 KeyError: 0
    • 您可能会发现 df['word_col'].apply(is_repetitive) 会有所帮助。或者当is_repetitive() 为真时,让另一个函数将单词变为“”空。如果您要传入一个句子,那么您将需要一个将其拆分为单词并丢弃重复单词的函数。 pandas.pydata.org/pandas-docs/stable/reference/api/…
    • 假设我的 df 有 2 列 id 和 text。这些列中的条目就像 1 aaa,2 hello aaa,我希望输出为 1(空白)2 hello
    • 如果你传入一个句子,那么你需要一个函数将它拆分为单词并丢弃重复的单词。也许:return ' '.join([word for word in line.split() if not is_repetitive(word)])。或return ' '.join(filter(is_repetitive, line.split()))
    【解决方案2】:

    1) 使用 SpaCy 或 NLTK 的词形还原工具来转换字符串(尽管它们也会执行其他操作,例如将复数转换为单数 - 因此您可能最终需要编写自己的代码来执行此操作)。

    2) 使用 NLTK 或 spacy 中的停用词来删除明显的停用词。或者,给他们提供你自己的停用词列表(他们的默认停用词是 is, a, the)。

    3)使用基本过滤器,如果 len

    【讨论】:

    • ....谢谢!如果 df 列中有诸如 eeeee、hh、jjjj 之类的单词,基本上是具有相同重复字母的单词。我想删除这样的词。怎么做?这些词可以与一个明智的词结合使用,比如 hello aaa 变成了只是 hello。
    猜你喜欢
    • 2014-12-19
    • 2021-10-17
    • 2013-08-25
    • 2015-09-19
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 2014-11-21
    相关资源
    最近更新 更多