首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两词标记的文本分类

两词标记的文本分类
EN

Stack Overflow用户
提问于 2019-03-11 20:51:57
回答 1查看 95关注 0票数 0

我试图在广告中使用NLTK和word标记进行一些关键信息提取。

例如:“该房间最大可容纳800人,禁止吸烟,禁止12岁以上的儿童吸烟……”

我的问题是:-(最大容量)的含义不同于容量。-禁止吸烟与吸烟不同。

我如何标记复合词来进行分析?我不想打破“不”,“吸烟”,我想要一个象征性的“禁止吸烟”

代码语言:javascript
复制
word_tokenize(text)

另外,当我标记和删除停止词时,我就失去了单词的否定意义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-11 21:05:55

我想你要找的是NLTK的夜报

代码语言:javascript
复制
from nltk import ngrams

text = "The room has max capacity of 800 people no smoking allowed no children above 12 yr old ..."

pairs = ngrams(text.split(), 2) # change the 2 here to however many words you want in each group

for pair in pairs:
    print(pair)

> ('The', 'room')
('room', 'has')
('has', 'max')
('max', 'capacity')
('capacity', 'of')
('of', '800')
('800', 'people')
('people', 'no')
('no', 'smoking')
('smoking', 'allowed')
('allowed', 'no')
('no', 'children')
('children', 'above')
('above', '12')
('12', 'yr')
('yr', 'old')
('old', '...')

希望这能有所帮助

编辑:

如果您接下来要使用TF,我建议使用sklearn.feature_extraction.text.TfidfVectorizer,它使用ngram_range作为参数,ngram_range=(2, 2)会给出您想要的对,这意味着您不需要在手上使用上面的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55110227

复制
相关文章

相似问题

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