如何转换具有相同重复字母的否定词和单个词
How to convert negations and single words with same repetitive letter
我有一个数据框,其中有一列包含文本数据。我想从文本数据中删除没有任何意义的单词,并将 "isn't" 之类的否定转换为 "is not"。因为当我删除标点符号时 "isn't" 变成 "isn t" 并且当我删除字母长度小于 2 的单词时 "t" 将被完全删除。所以,我想做以下 3 个任务-
1) 将 "isn't" 之类的否定转换为 "is not"
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
如何实现?
1) 使用 SpaCy 或 NLTK 的词形还原工具来转换字符串(尽管它们还执行其他操作,例如将复数转换为单数 - 因此您最终可能需要编写自己的代码来执行此操作)。
2) 使用 NLTK 或 spacy 中的停用词来删除明显的停用词。或者,向他们提供您自己的停用词列表(他们的默认停用词是 is、a、the)。
3)使用基本过滤器,如果 len<2 删除行
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:]))
将语料库中的所有单词提供给该函数,
积累重复单词的列表。
然后将这些词添加到您的停用词列表中。
我有一个数据框,其中有一列包含文本数据。我想从文本数据中删除没有任何意义的单词,并将 "isn't" 之类的否定转换为 "is not"。因为当我删除标点符号时 "isn't" 变成 "isn t" 并且当我删除字母长度小于 2 的单词时 "t" 将被完全删除。所以,我想做以下 3 个任务- 1) 将 "isn't" 之类的否定转换为 "is not" 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
如何实现?
1) 使用 SpaCy 或 NLTK 的词形还原工具来转换字符串(尽管它们还执行其他操作,例如将复数转换为单数 - 因此您最终可能需要编写自己的代码来执行此操作)。
2) 使用 NLTK 或 spacy 中的停用词来删除明显的停用词。或者,向他们提供您自己的停用词列表(他们的默认停用词是 is、a、the)。
3)使用基本过滤器,如果 len<2 删除行
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:]))
将语料库中的所有单词提供给该函数, 积累重复单词的列表。 然后将这些词添加到您的停用词列表中。