繁体   English   中英

具有两个单词标记的文本分类

[英]Text Classification with Two Word Token

我正在尝试使用NLTK和广告中的单词标记化进行一些关键信息提取。

例如:“该房间最多可容纳800人,禁止吸烟,不允许12岁以上的儿童入住。”

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

如何标记合成词以进行分析? 我不想破坏[“不”,“吸烟”]我想要一个令牌[“不吸烟”]

word_tokenize(text)

而且,当我标记和删除停用词时,我会失去这些词的否定含义。

我认为您要寻找的是NLTK的ngram

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-IDF,我可能建议sklearn.feature_extraction.text.TfidfVectorizer ,将ngram_range作为参数ngram_range=(2, 2)将为您提供您想要的对,这意味着您不会需要事先使用上面的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM