如何让 Spacy 正确标记 am/pm 表达式?
How to get Spacy to tokenize am/pm expressions correctly?
Spacy 似乎无法正确标记 am/pm 表达式,其中数字和 am/pm 部分未用空格分隔。
示例:"Something happened at 9am" 生成意外的标记集:
Token 对象列表:[Something, happened, at, LIKE_URL, am]
虽然 "Something happened at 9 am" 工作正常:
Token 对象列表:[Something, happened, at, 9, am]
重现:
>>> import spacy
>>> nlp = spacy.load('en')
>>> doc = nlp(u"Something happened at 9am")
>>> tokens = [x for x in doc]
>>> tokens
[Something, happened, at, LIKE_URL, am]
>>> doc2 = nlp("Something happened at 9 am")
>>> tokens2 = [x for x in doc]
>>> tokens2
[Something, happened, at, 9, am]
我注意到,如果您深入了解令牌对象,令牌的 'orth' 表示形式是 9。同样,如果我尝试“上午 8 点”,令牌显示为 'IS_UPPER' 并且'orth' 代币表示为 8。
这对我来说尤其是个问题,因为我需要在更广泛的上下文中跟踪令牌跨度,而文本中显示为“8”但令牌形式 "IS_UPPER" 的令牌会导致我的跨度由 7 关闭。(即下一个标记的实际文档级索引(token.idx)由 7 关闭)
如何处理包含有时以上述格式表示的 am/pm 表达式的 spacy 文档,并检索准确的标记跨度?
我正在使用 Python 2.7.12 和 Spacy 1.4.0
事实证明,这是大约一个月前报告的错误:
https://github.com/explosion/spaCy/issues/736
升级到 Spacy 1.6.0 解决了这个问题。
Spacy 似乎无法正确标记 am/pm 表达式,其中数字和 am/pm 部分未用空格分隔。
示例:"Something happened at 9am" 生成意外的标记集: Token 对象列表:[Something, happened, at, LIKE_URL, am]
虽然 "Something happened at 9 am" 工作正常: Token 对象列表:[Something, happened, at, 9, am]
重现:
>>> import spacy
>>> nlp = spacy.load('en')
>>> doc = nlp(u"Something happened at 9am")
>>> tokens = [x for x in doc]
>>> tokens
[Something, happened, at, LIKE_URL, am]
>>> doc2 = nlp("Something happened at 9 am")
>>> tokens2 = [x for x in doc]
>>> tokens2
[Something, happened, at, 9, am]
我注意到,如果您深入了解令牌对象,令牌的 'orth' 表示形式是 9。同样,如果我尝试“上午 8 点”,令牌显示为 'IS_UPPER' 并且'orth' 代币表示为 8。
这对我来说尤其是个问题,因为我需要在更广泛的上下文中跟踪令牌跨度,而文本中显示为“8”但令牌形式 "IS_UPPER" 的令牌会导致我的跨度由 7 关闭。(即下一个标记的实际文档级索引(token.idx)由 7 关闭)
如何处理包含有时以上述格式表示的 am/pm 表达式的 spacy 文档,并检索准确的标记跨度?
我正在使用 Python 2.7.12 和 Spacy 1.4.0
事实证明,这是大约一个月前报告的错误: https://github.com/explosion/spaCy/issues/736
升级到 Spacy 1.6.0 解决了这个问题。