我使用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)
谢谢!
答案 0 :(得分:0)
执行此操作的一种方法是首先通过标点符号拆分要标记的字符串。像这样:
import re, string
patt = '[' + string.punctuation + ']'
splitted_title = re.split(patt, df.title)
然后将标记化应用于splitted_title