如果我有一些包含短语"1:1“的文本。如何让CountVectorizer将其识别为令牌?
text = ["first ques # 1:1 on stackoverflow", "please help"]
vec = CountVectorizer()
vec.fit_transform(text)
vec.get_feature_names()发布于 2017-03-19 10:29:53
您可以使用自定义令牌程序。对于简单的情况替换
vec = CountVectorizer()通过
vec = CountVectorizer(tokenizer=lambda s: s.split())就行了。通过这种修改,您的代码返回:
[u'#', u'1:1', u'first', u'help', u'on', u'please', u'ques', u'stackoverflow']希望这个建议能让你走上正确的轨道,但请注意,在更复杂的情况下(例如,如果你的文本有标点符号的话),这种解决方法不能正常工作。
要处理穿孔标记,您可以传递给CountVectorizer一个令牌模式,如下所示:
text = [u"first ques... # 1:1, on stackoverflow", u"please, help!"]
vec = CountVectorizer(token_pattern=u'\w:?\w+')输出:
[u'1:1', u'first', u'help', u'on', u'please', u'ques', u'stackoverflow']https://stackoverflow.com/questions/42877605
复制相似问题