首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >word_tokenize更改引号

word_tokenize更改引号
EN

Stack Overflow用户
提问于 2015-06-26 13:37:41
回答 2查看 843关注 0票数 3

我使用Python的nltk,我想标记一个包含引号的句子,但它将"转换为``''

例如:

代码语言:javascript
复制
>>> from nltk import word_tokenize

>>> sentence = 'He said "hey Bill!"'
>>> word_tokenize(sentence)
['He', 'said', '``', 'hey', 'Bill', '!', "''"]

为什么它不保持原句中的引号,如何解决这个问题呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-26 13:54:23

它实际上是要这么做的,不是偶然的。来自宾州树状银行机构化

双引号(")改为双倍的前向和后向引号(和'')

在以前的版本中,它没有这样做,但它是在去年更新的。换句话说,如果您想要更改,则需要编辑treebank.py

票数 2
EN

Stack Overflow用户

发布于 2020-08-10 05:56:45

扩大Leb提供的答案:

Penn Treebank令牌化的URL不再可用。但它在html/tokenization.html中的存在

复制粘贴内容如下:

树银行令牌化 我们的标记化非常简单:

  • 大多数标点符号都是从相邻的单词中分离出来的。
  • 双引号(")改为双倍的前向和后向引号(和'')
  • 动词收缩和名词的盎格鲁-撒克逊属格被分割成它们的组成语素,每个语素都有标记。 分开。 例如,孩子的父母-->孩子的父母-父母不会 这种标记化允许我们分别分析每个组件,因此"I“可以出现在主语名词短语中,而”m“则是主要动词短语的首字母。
  • 连字符和破折号、省略点有一些微妙之处(.)依此类推,但这些往往取决于特定语料库或标记数据的应用。
  • 在解析的语料库中,类似括号的字符被转换成特殊的三个字母序列,以避免与解析括号混淆。一些POS taggers,如的MXPOST,需要使用此表单进行输入。换句话说,POS文件中的这些令牌:(){}变成,在解析的文件中:-LRB- -RRB - RSB - RCB- RCB--(缩写词表示(左~右)(圆环--平方-卷)括号)。 这里有一个简单的sed脚本,一旦语料库被格式化成一行一句话,它在大多数语料库上都能做得很好。

斯坦福大学的例子:

https://nlp.stanford.edu/software/tokenizer.shtml

命令行使用部分展示了如何按照Penn令牌化规则更改双引号的示例。

模块/nltk/tokenize/treebank.html

类TreebankWordTokenizer展示了这些更改是如何实现的:

代码语言:javascript
复制
# starting quotes
 (re.compile(r"^\""), r"``")

# ending quotes
(re.compile(r'"'), " '' ")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31074682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档