gpt4 book ai didi

regex - 为什么我在 NLTK RegexpTokenizer() 中的正则表达式删除了 "is"和 "to"?

转载 作者:行者123 更新时间:2023-12-01 09:24:20 25 4
gpt4 key购买 nike

我要分词

s = ("mary went to garden. where is mary? "
"mary is carrying apple and milk. "
"what mary is carrying? apple,milk")

进入

['mary', 'went', 'to', 'garden', '.', 
'where', 'is', 'mary', '?',
'mary', 'is', 'carrying', 'apple', 'and', 'milk', '.',
'what', 'mary', 'is', 'carrying', '?', 'apple,milk']

请注意,我想将 'apple,milk' 保留为一个词。

我的代码是:

from nltk.tokenize import RegexpTokenizer
tokenizer = RegexpTokenizer('\w+[\]|\w+[\,]\w+|\.|\?')
s = "mary went to garden. where is mary? mary is carrying apple and milk. what mary is carrying? apple,milk"
tokenizer.tokenize(s)

结果是:

['mary', 'went', 'garden', '.', 
'where', 'mary', '?',
'mary', 'carrying', 'apple', 'and', 'milk', '.',
'what', 'mary', 'carrying', '?', 'apple,milk']

但是,'is''to' 丢失了。如何留住它们?

最佳答案

您的正则表达式模式根本无法捕获缺失的单词。

您可以使用正则表达式工具或使用 RegexpTokenizer('\w+[\]|\w+[\,]\w+|\.|\?', True)显示间隙而不是标记的参数 (doc)。

更新:
这是一个模式,可以找到您指定的所有标记:

\w+[\,]\w+|\w+|\.|\?

备注:使用正则表达式替代项时,按长度(通常从最长到最短)对它们进行排序可能很重要。 [\] 对我来说没有意义,在语法上也不正确。

Online demo

关于regex - 为什么我在 NLTK RegexpTokenizer() 中的正则表达式删除了 "is"和 "to"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48576128/

25 4 0
文章推荐: python - 比较两个数据帧并出现错误
文章推荐: python - 尝试理解 .strip
文章推荐: python - BeautifulSoup:如何提取
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com