如何使用标点符号作为边界来标记文本(Python)

时间:2017-09-15 09:09:18

标签: python tokenize term-document-matrix

我使用CountVectorizer中的sklearn进行文本标记化(2-gram)并创建术语 - 文档矩阵。如何将带有标点符号作为边界的文本标记为2-gram?例如,输入句子是" 这是示例,带有标点符号。" 我希望代币是" 这是"," 是示例"," with标点符号&#34 ;. 我不想要" 示例",这是逗号。

以下是我目前的代码:

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)

谢谢!

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是首先通过标点符号拆分要标记的字符串。像这样:

import re, string

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

然后将标记化应用于splitted_title

的每个元素