2017-09-15 62 views
0

我使用CountVectorizersklearn做文字符号化(2克),并创建一个术语文档矩阵如何来标记文本。我如何将文字标记为2克并以标点符号作为边界?例如,输入句子是“这是例子,标点符号”。 我想令牌为“这是”,“是示例”,“带有标点符号”。 我不希望“示例与”,它横跨逗号。使用标点符号作为边界(Python)的

下面是我当前的代码:

from sklearn.feature_extraction.text import CountVectorizer 
df = pd.DataFrame({'title':['this is example, with punctuation'], 'page':[1]}) 
countvec = CountVectorizer(ngram_range=(2, 2), analyzer="word") 

test_tdm = pd.DataFrame(countvec.fit_transform(df.title).toarray(), columns=countvec.get_feature_names()) 
print(test_tdm) 

谢谢!

回答

0

这样做的一种方法是首先将标点符号化的字符串拆分。事情是这样的:

import re, string 

patt = '[' + string.punctuation + ']' 
splitted_title = re.split(patt, df.title) 

,然后在断词适用于的splitted_title

每个元素