【发布时间】:2017-06-27 19:40:07
【问题描述】:
我的句子带有州代码,后跟 . (即“CA.”、“AL.”,但也有好的“CA”、“AL”)或诸如“acct”之类的东西。或没有。” 我想: 1.删除那些“。” 2.保留其他“.” 3.更改号码。 #
例如,我想: “来自加利福尼亚州的 J. Edgar Hoover 先生欠我们 123.45 美元,账户号为 98765。” 成为 “来自加州的 J. Edgar Hoover 先生欠我们 123.45 美元,账户号为 98765。”
更改“不”。到 ” #” 和“帐户”。 “记账” 使用正则表达式或替换很容易完成,我可以先这样做以消除这些问题。 (我愿意接受其他有效的方法)。
但是如何更改状态代码。状态代码并保持正确的状态代码?
谢谢!
【问题讨论】:
-
我明白你在做什么,但考虑一下这句话:
Mr. J. Edgar Hoover lives in CA.:没有办法知道最后一个点是缩写点还是句子结尾的点。 -
我不同意。我认为正则表达式可以做到:
re.sub('([A-Z]){2}.', '\1', line) -
@CasimiretHippolyte 是的。那么,从本质上讲,它变成了一个从缩写词中消除句子结尾歧义的问题。这基本上就是句子标记器所做的。所以一种选择是使用句子标记器,然后从里面的单词标记中剥离。当然,这不会 100% 有效
-
那里有很多 NLP 包,我认为当前的代码编写请求可以关闭。
标签: python regex str-replace