我使用Python的nltk,我想标记一个包含引号的句子,但它将"转换为``和''。
例如:
>>> from nltk import word_tokenize
>>> sentence = 'He said "hey Bill!"'
>>> word_tokenize(sentence)
['He', 'said', '``', 'hey', 'Bill', '!', "''"]为什么它不保持原句中的引号,如何解决这个问题呢?
谢谢
发布于 2015-06-26 13:54:23
它实际上是要这么做的,不是偶然的。来自宾州树状银行机构化
双引号(")改为双倍的前向和后向引号(和'')
在以前的版本中,它没有这样做,但它是在去年更新的。换句话说,如果您想要更改,则需要编辑treebank.py
发布于 2020-08-10 05:56:45
扩大Leb提供的答案:
Penn Treebank令牌化的URL不再可用。但它在html/tokenization.html中的存在
复制粘贴内容如下:
树银行令牌化 我们的标记化非常简单:
斯坦福大学的例子:
https://nlp.stanford.edu/software/tokenizer.shtml
命令行使用部分展示了如何按照Penn令牌化规则更改双引号的示例。
模块/nltk/tokenize/treebank.html
类TreebankWordTokenizer展示了这些更改是如何实现的:
# starting quotes
(re.compile(r"^\""), r"``")
# ending quotes
(re.compile(r'"'), " '' ")https://stackoverflow.com/questions/31074682
复制相似问题