【问题标题】:Word tokenizer not picking up " this's "词分词器没有拾取“这是”
【发布时间】:2017-11-22 11:36:28
【问题描述】:

在理解为什么 NLTK 的 word_tokenizer 会查看字符串“this's”并将其拆分为“this”“'”“s”而不是将它们放在一起时遇到问题。我已经用“测试”进行了测试,效果很好。当我用“结果”进行测试时,它再次分裂了撇号。这只是撇号会发生的特殊事情吗?

【问题讨论】:

  • 我认为这(呵呵!)相关:ell.stackexchange.com/q/145503
  • 您之前是否尝试过添加\。即'this\'s'?
  • @Simon ,我试过了,没用
  • 一切都好,我自己解析了

标签: python nlp nltk


【解决方案1】:

拆分this's -> this + 's 通常是 NLTK 和标记器的正常行为。因为's 一个派系,它们是两个独立的句法单元。

>>> from nltk import word_tokenize
>>> word_tokenize("this's")
['this', "'s"]

对于结果的情况是一样的:

>>> word_tokenize("results'")
['results', "'"]

为什么's' 是与其宿主不同的实体?

对于this's'sis 的缩写形式,表示连接函数。在某些情况下,它是模棱两可的,也可以表示所有格。

对于results' 的第二种情况,' 表示所有格。

所以如果我们 POS 标记我们得到的标记化表格:

>>> from nltk import word_tokenize, pos_tag
>>> pos_tag(word_tokenize("results'"))
[('results', 'NNS'), ("'", 'POS')]

对于this's,词性标注者认为它是所有格,因为人们很少在书面文本中使用this's

>>> from nltk import word_tokenize, pos_tag
>>> pos_tag(word_tokenize("this's"))
[('this', 'DT'), ("'s", 'POS')]

但如果我们看一下He's -> He + 's,会更清楚's 表示系词:

>>> pos_tag(word_tokenize("He's good."))
[('He', 'PRP'), ("'s", 'VBZ'), ('good', 'JJ'), ('.', '.')]

相关问题:https://stackoverflow.com/a/47384013/610569

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2016-04-26
    相关资源
    最近更新 更多