gpt4 book ai didi

python - 如何使用 rstrip 删除尾随字符?

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:25 24 4
gpt4 key购买 nike

我正在尝试遍历一堆文档,我必须将每个单词放入该文档的列表中。我是这样做的。 stoplist 只是我想默认忽略的单词列表。

texts = [[word for word in document.lower().split() if word not in stoplist]
for document in documents]

我返回了一个文档列表,在每个列表中,都有一个单词列表。一些词仍然包含尾随标点符号或其他异常。我以为我可以做到这一点,但它似乎并没有正常工作

texts = [[word.rstrip() for word in document.lower().split() if word not in stoplist]
for document in documents]

或者

texts = [[word.rstrip('.,:!?:') for word in document.lower().split() if word not in stoplist]
for document in documents]

我的另一个问题是这个。我可能会在我想保留单词的地方看到这样的单词,但转储尾随数字/特殊字符。

agency[15]
assignment[72],
you’ll
america’s

因此,为了清除大部分其他噪音,我想我应该继续从字符串末尾删除字符,直到它变成 a-zA-Z,或者如果字符串中的特殊字符多于字母字符,则将其扔掉.你可以在我最后的两个例子中看到,字符串的末尾是一个字母字符。所以在那些情况下,由于特殊字符的数量(多于字母字符),我应该忽略这个词。我在想我应该只搜索字符串的末尾,因为我想尽可能保持连字符的完整。

基本上我想删除每个单词的所有尾随标点符号,并可能删除处理我刚才描述的情况的子例程。我不确定该怎么做,或者这是否是最好的方法。

最佳答案

>>> a = ['agency[15]','assignment72,','you’11','america’s']
>>> import re
>>> b = re.compile('\w+')
>>> for item in a:
... print b.search(item).group(0)
...
agency
assignment72
you
america
>>> b = re.compile('[a-z]+')
>>> for item in a:
... print b.search(item).group(0)
...
agency
assignment
you
america
>>>

更新

>>> a = "I-have-hyphens-yo!"
>>> re.findall('[a-z]+',a)
['have', 'hyphens', 'yo']
>>> re.findall('[a-z-]+',a)
['-have-hyphens-yo']
>>> re.findall('[a-zA-Z-]+',a)
['I-have-hyphens-yo']
>>> re.findall('\w+',a)
['I', 'have', 'hyphens', 'yo']
>>>

关于python - 如何使用 rstrip 删除尾随字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com