伙计我有一个字符串,我正在努力制作一个ngram,但是我有一个问题,当我做ngram = ngrams(raw_text.split(" "), n=1
输出是
[('come',), ('here,',), ('girl\noh,',), ('you',)....]
问题在于我的字符串中的单词排列如下:
come here, girl\noh, you want...
这意味着我的ngram比它需要的大得多 那么我该怎么做才能获得像
这样的字符串come here , girl \n oh , you ...
这样我的ngram就是一个更小的订单 多谢你们 我希望你们都过得愉快
编辑我现在知道我使用分隔符并且已经改变了......所以\ n问题消失了,但是我可以将字符串拆分成带有标点符号的字符串吗?
答案 0 :(得分:0)
我可以拆分字符串中包含标点符号的单词吗?
您的最终结果仍然不明确:您想要包含标点符号还是完全丢弃标点符号?假设您不需要标点符号,使用re.split()
这是微不足道的:
>>> import re
>>> re.split(r'\W+', "Hello, this'll split by\n \nwhitespace and also puncutation!")
['Hello', 'this', 'll', 'split', 'by', 'whitespace', 'and', 'also', 'puncutation', '']
如果你想以更聪明的方式分裂,这很快就会变得复杂。我建议使用nltk
工具包,该工具包提供其他选项nltk.word_tokenize
:
>>> import nltk
>>> nltk.word_tokenize("Hello, this'll split by\n \nwhitespace and also puncutation!")
['Hello', ',', 'this', "'ll", 'split', 'by', 'whitespace', 'and', 'also', 'puncutation', '!']