【问题标题】:Replace the words "can't, don't" by "can not, do not" using python [closed]使用python将“不能,不要”替换为“不能,不要”[关闭]
【发布时间】:2017-07-31 09:45:28
【问题描述】:

我需要使用 python 将 "{can't, don't, won't }" 替换为 "{can not, do not, won't}"

问题是: “can't”可以通过检查后缀“n't”来检测,所以我们可以将“n't”替换为“not” 但是我们如何将“ca”转换为“can”,当我们拆分“can't”时,它应该转换为“can not”?

【问题讨论】:

  • 我认为您遇到的问题比您在这里发现的要大。当产生的第一个will not 完全不同(wo -> will)时,您打算如何处理won't。英语不是一门明确的语言,几乎没有甚至没有严格的规则。很少有任何(可能简单的)算法适用于所有情况。使用包含已知收缩列表的方法可能会更好。
  • 我需要在 afinn 字典中搜索单词以进行极性检查,但像“不”这样的单词不存在,所以我需要打破它。我也认为将“不会”转换为“不会”或“不会”在确定极性方面不会产生太大影响
  • 如果您的目标是支持极性检查,只需修改您的字典以匹配标记化:例如,添加特征“ca”和“wo”作为“can”和“will”的变体。跨度>
  • @CollinD 我想根据标签,这个问题已经足够清楚了,是一个真正的问题。我们可以重新打开这个问题吗?他的意思是:在 NLTK 中,像 {can't, don't, won't } 这样的词将被破坏为 {ca + not , do + not , wo + not },do + not 有意义但其他两个是错误的。那么解决方法是什么...
  • @PriyankPathak 我不认为应该重新讨论这个问题,所以我不会投票。接近的原因可能并不完美,但该帖子仍然没有任何迹象表明在将其发布到此处之前已对该问题进行了任何重要的工作。这是每天数以千计的问题之一,值得“SO 不是代码编写服务”的答案。我认为如果您有类似的问题并且可以将其写为高质量的问题,那么您绝对应该这样做。

标签: regex python-2.7 nlp nltk


【解决方案1】:

由于英语的规则很大而且有时不一致,最好的办法可能是设置完整的单词图,而不是试图即时找出撇号代表哪些字母。

换句话说,一个具有如下值的字典:

can't    -> can not
don't    -> do not
won't    -> will not
:
oughtn't -> ought not

【讨论】:

  • 还有臭名昭著的y'all'd'n't've
猜你喜欢
  • 2012-08-05
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
相关资源
最近更新 更多