首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不考虑大小写和复数扩展的words数据格式-Repetition的数据清洗

不考虑大小写和复数扩展的words数据格式-Repetition的数据清洗
EN

Stack Overflow用户
提问于 2019-05-29 09:13:11
回答 1查看 126关注 0票数 0

我的DataFrame中有专栏,现在我的要求是:

  1. 单词的重复不应出现在每一行。
  2. 假设我有狗和狗在我的绳子里,只有狗应该在场。
  3. 大小写敏感:即使我有狗和狗,它也应该移除狗,只给狗。
  4. 特殊情况,如狗和狗的,然后删除狗的和结果应该只包含狗。

请找到我使用的下面的示例代码。

1.试着对数据进行词干化和归一化处理,但不准确;2.甚至使用了空间化和归一化处理,结果也是一样的。

产出看上去要好一些,但在刺激的同时,其他的词也在起作用。

代码语言:javascript
复制
m='dog ran out of Dogs and Dog ran out of cat and dog''s adidas'

try:
    def stem(tokens):
        x=[]
        stemmer = SnowballStemmer(language='english')
        for token in tokens:  
            x.append(stemmer.stem(token))
        return x
except:
    print('problem at stemming')


s12=' '.join(stem(m.split()))


#####Then written code for duplicate removal

try:
    def unique_list(list1):
        marker = set()
        result = [not marker.add(x.casefold()) and x for x in list1 if x.casefold() not in marker]
        return result
except:
    print("Problem in removing duplicates")


s5=' '.join(unique_list(s12.split()))

实际情况:“狗用完了狗,狗用完了猫和狗的阿迪达”,实际结果是:“狗用完了狗,狗用完了猫和狗阿迪达。”

所以,在实际的结果中,它也是修饰阿迪达斯,这是字符串中的最后一个词。它正在变成“阿迪达”而不是阿迪达斯

预期结果:“狗用完了狗,狗也用完了猫和阿迪达斯”

需要你的想法或帮助来解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2019-06-03 06:36:11

代码语言:javascript
复制
from nltk import WordNetLemmatizer
lemm = WordNetLemmatizer()
sent  = 'dog ran out of Dogs and Dog ran out of cat and dog''s adidas'
word_token = [y.lower() for y in sent.split()]
print(' '.join([lemm.lemmatize(word,'n') for word in word_token]))

#o/p
'dog ran out of dog and dog ran out of cat and dog adidas'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56357016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档