首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >修改NLTK word_tokenize以防止括号的标记化

修改NLTK word_tokenize以防止括号的标记化
EN

Stack Overflow用户
提问于 2016-05-09 05:59:54
回答 1查看 1.8K关注 0票数 1

我有以下main.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:

import nltk
import string
import sys
for token in nltk.word_tokenize(''.join(sys.stdin.readlines())):
    #print token
    if len(token) == 1 and not token in string.punctuation or len(token) > 1:
        print token

输出如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./main.py <<< 'EGR1(-/-) mouse embryonic fibroblasts'
EGR1
-/-
mouse
embryonic
fibroblasts

有没有人知道有没有这样的方法来稍微修改一下记号赋予器?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-09 08:25:25

NLTK中的默认word_tokenize()函数是基于正则表达式替换序列的TreebankWordTokenizer

更具体地说,当涉及到在括号之间添加空格时,TreebankWordTokenizer使用以下正则表达式替换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PARENS_BRACKETS = [
    (re.compile(r'[\]\[\(\)\{\}\<\>]'), r' \g<0> '),
    (re.compile(r'--'), r' -- '),
]

for regexp, substitution in self.PARENS_BRACKETS:
    text = regexp.sub(substitution, text)

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import re

text = 'EGR1(-/-) mouse embryonic fibroblasts'

PARENS_BRACKETS = [
    (re.compile(r'[\]\[\(\)\{\}\<\>]'), r' \g<0> '),
    (re.compile(r'--'), r' -- '),
]

for regexp, substitution in PARENS_BRACKETS:
    text = regexp.sub(substitution, text)

print text

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
EGR1 ( -/- )  mouse embryonic fibroblasts

因此,回到“黑客”NLTK word_tokenize()函数,您可以尝试类似这样的操作来取消PARENS_BRACKETS替换的影响:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from nltk.tokenize import TreebankWordTokenizer
>>> tokenizer = TreebankWordTokenizer()
>>> tokenizer.PARENS_BRACKETS = []
>>> text = 'EGR1(-/-) mouse embryonic fibroblasts'
>>> tokenizer.tokenize(text)
['EGR1(-/-)', 'mouse', 'embryonic', 'fibroblasts']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37108656

复制
相关文章
关于NLP中的文本预处理的完整教程
在下面的python代码中,我们从Twitter情感分析数据集的原始文本数据中去除噪音。之后,我们将进行删除停顿词、干化和词法处理。
PHP开发工程师
2022/04/15
6360
关于NLP中的文本预处理的完整教程
自然语言处理背后的数据科学
NLP是人与机器之间的沟通,使得机器既可以解释我们的语言,也可以就此作出有效回答。自20世纪50年代以来,这个领域一直存在,你可能听说过Alan Turing开创的“图灵测试”。图灵测试测量计算机对人类所提出问题做出反应的好坏程度。
CDA数据分析师
2019/05/15
8300
自然语言处理背后的数据科学
自然语言处理背后的算法基本功能
NLP是人与机器之间的沟通,使得机器既可以解释我们的语言,也可以就此作出有效回答。自20世纪50年代以来,这个领域一直存在,你可能听说过Alan Turing开创的“图灵测试”。图灵测试测量计算机对人类所提出问题做出反应的好坏程度。
商业新知
2019/06/13
1.3K0
自然语言处理背后的算法基本功能
自然语言处理背后的数据科学
NLP是人与机器之间的沟通,使得机器既可以解释我们的语言,也可以就此作出有效回答。自20世纪50年代以来,这个领域一直存在,你可能听说过Alan Turing开创的“图灵测试”。图灵测试测量计算机对人类所提出问题做出反应的好坏程度。
大数据文摘
2019/05/13
7660
Python文本预处理:步骤、使用工具及示例
本文将讨论文本预处理的基本步骤,旨在将文本信息从人类语言转换为机器可读格式以便用于后续处理。此外,本文还将进一步讨论文本预处理过程所需要的工具。
AI科技大本营
2019/05/06
1.6K0
Python文本预处理:步骤、使用工具及示例
【NLTK基础】一文轻松使用NLTK进行NLP任务(附视频)
NLTK作为文本处理的一个强大的工具包,为了帮助NLPer更深入的使用自然语言处理(NLP)方法。本公众号开更Natural Language Toolkit(即NLTK)模块的“ Natural Language Processing”教程系列。
用户7886150
2020/12/28
8500
自然语言处理背后的数据科学
本文为 AI 研习社编译的技术博客,原标题 : The Data Science Behind Natural Language Processing 作者 | John Thuma 翻译 | luyao777 校对 | Pita 审核 | 酱番梨 整理 | 立鱼王 原文链接: https://medium.com/dataseries/the-data-science-behind-natural-language-processing-69d6df06a1f
AI研习社
2019/05/08
7560
自然语言处理背后的数据科学
【NLTK基础】一文轻松使用NLTK进行NLP任务(附视频)
NLTK作为文本处理的一个强大的工具包,为了帮助NLPer更深入的使用自然语言处理(NLP)方法。本公众号开更Natural Language Toolkit(即NLTK)模块的“ Natural Language Processing”教程系列。
zenRRan
2020/02/25
1.1K0
NLTK文本整理和清洗示例代码
from nltk.tokenize import regexp_tokenize
用户7886150
2020/12/27
8810
自然语言处理| NLTK库的详解
自然语言处理(natural language processing)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
润森
2019/08/29
6.9K0
自然语言处理| NLTK库的详解
NLP项目:使用NLTK和SpaCy进行命名实体识别
命名实体识别(NER)是信息提取的第一步,旨在在文本中查找和分类命名实体转换为预定义的分类,例如人员名称,组织,地点,时间,数量,货币价值,百分比等。NER用于自然语言处理(NLP)的许多领域,它可以帮助回答许多现实问题,例如:
AiTechYun
2018/09/26
7.3K0
NLP项目:使用NLTK和SpaCy进行命名实体识别
5个Python库可以帮你轻松的进行自然语言预处理
自然语言是指人类相互交流的语言,而自然语言处理是将数据以可理解的形式进行预处理,使计算机能够理解的一种方法。简单地说,自然语言处理(NLP)是帮助计算机用自己的语言与人类交流的过程。
deephub
2021/05/18
9190
Python 数据科学入门教程:NLTK
欢迎阅读自然语言处理系列教程,使用 Python 的自然语言工具包 NLTK 模块。
ApacheCN_飞龙
2022/12/01
4.5K0
Python 数据科学入门教程:NLTK
数据科学和人工智能技术笔记 五、文本预处理
词干提取通过识别和删除词缀(例如动名词)同时保持词的根本意义,将词语简化为词干。 NLTK 的PorterStemmer实现了广泛使用的 Porter 词干算法。
ApacheCN_飞龙
2022/12/02
6050
使用Python中的NLTK和spaCy删除停用词与文本标准化
【磐创AI 导读】:本文介绍了如何使用Python中的NLTK和spaCy删除停用词与文本标准化,欢迎大家转发、留言。想要更多电子杂志的机器学习,深度学习资源,大家欢迎点击上方蓝字关注我们的公众号:磐创AI。
磐创AI
2019/09/09
4.2K0
使用Python中的NLTK和spaCy删除停用词与文本标准化
Python自然语言处理 NLTK 库用法入门教程【经典】
@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下:
用户7886150
2020/12/28
2K0
Python NLTK 自然语言处理入门与例程
那么 NLP 到底是什么?学习 NLP 能带来什么好处?
Sepmer Fi
2018/02/23
6.2K1
nlp词性标注的作用
词性标注 – 除了语法关系,句中单词的位置(词性)标记也蕴含着信息,词的位置定义了它的用途和功能。宾夕法尼亚大学提供了一个完整的位置标记列表。下方代码则使用了NLTK库来对输入的文本进行词性标注。
py3study
2020/01/19
1.5K0
使用 Python 和 TFIDF 从文本中提取关键词
关键词提取是从简明概括长文本内容的文档中,自动提取一组代表性短语。关键词是一个简短的短语(通常是一到三个单词),高度概括了文档的关键思想并反映一个文档的内容,清晰反映讨论的主题并提供其内容的摘要。
数据STUDIO
2022/05/24
4.5K0
使用 Python 和 TFIDF 从文本中提取关键词
TensorFlow练习1: 对评论进行分类
TensorFlow是谷歌2015年开源的一个深度学习库,到现在正好一年。和TensorFlow类似的库还有Caffe、Theano、MXNet、Torch。但是论火爆程度,TensorFlow当之无愧,短短一年就在Github就收获了4万+颗星,把前面几个库获得的star加起来也不敌TensorFlow。
周小董
2019/03/25
8650
TensorFlow练习1: 对评论进行分类

相似问题

nltk word_tokenize:为什么在单词标记之前要进行句子标记化?

13

使用nltk word_tokenize进行标记化后重新连接语句like original

258

NLTK Python word_tokenize

10

使用nltk word_tokenize时出错

22

NLTK词与word_tokenize的比较

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文