我对Python比较陌生,对nltk和regex来说很新.我已经寻找了指导,但没有找到它.我只是试图删除任何落在文本中的整数(应该总是一个整数)之后的x或X,以最终获得该数字.我有一些代码,一旦X或x被删除就做了我需要它做的事情,所以现在我试图添加到代码中从数字中删除x或X但不是正常文本(如下面的exited和matrix这样的单词) .
例如,如果我有一个文本字符串:'这是一个美好的一天,710x鸟离开他们的栖息地,飞过头顶.他们中的130X潜入并降落在草地上,而其中21X被7名猎人击中.9x只鸟消失在基质中.剩下的550只小鸟一直在飞走.
我想这个:
"这是一个美好的一天,710只鸟离开它们的栖息地,飞到头顶.其中130人潜入并降落在草地上,其中21人被7名猎人击毙.9只鸟消失在基质中.剩下的550只鸟飞走了.
所以我不知道这是否最好由正则表达式(正则表达式)或nltk(自然语言工具包)处理,或者仅仅是某种if语句.我从所提取文本的pdf文件中标记了所有可能超过20,000到30,000个令牌/单词的文本,但是我很乐意删除那些x,同时仍然是一个巨大的字符串或者在它们被制作成令牌之后.不管我.非常感谢您的任何帮助......
这匹配x后面的断言,前面的字符是一个数字,并替换x没有任何东西.
re.sub('(?<=\d)[xX]', '', s)
Run Code Online (Sandbox Code Playgroud)