【说话处理惩罚与Python】3.7用正则表达式为文本分词

    添加时间:2013-5-25 点击量:

    分词是将字符串切割成可识破的构成一块说话数据的说话单位。

    分词的简单办法

    raw = When IM a Duchess,she said to herself, (not in a very hopeful tone
    

    ... though), I wonthave any pepper in mykitchenATALL.Soupdoesvery

    ... wellwithout--Maybeits always pepper that makespeoplehot-tempered,...


    最简单的办法是在空格处罚割文本

    re.split(r’\s
    +’,raw)
     
    若是想更好的来应用正则表达式来起到分词的结果,还须要对正则表达式有更深的熟悉

    符号 功能


    \b 词鸿沟(零宽度)


    \d 任一十进制数字(相当于[0-9])


    \D 任何非数字字符(等价于[^ 0-9])


    \s 任何空白字符(相当于[ \t\n\r\f\v])


    \S 任何非空白字符(相当于[^ \t\n\r\f\v])


    \w 任何字母数字字符(相当于[a-zA-Z0-9_])


    \W 任何非字母数字字符(相当于[^a-zA-Z0-9_])


    \t 制表符


    \n 换行符


    NLTK的正则表达式分词器


    >>>text = That U.S.A.poster-print costs¥12.40...
    

    >>>pattern =r(?x) #set flag to allow verbose regexps

    ... ([A-Z]\.)+ #abbreviations, e.g. U.S.A.

    ... | \w+(-\w+) #words with optional internal hyphens

    ... | \¥?\d+(\.\d+)?%? #currency and percentages,e.g. ¥12.40,82%

    116

    ... | \.\.\. #ellipsis

    ... | [][.,;?():-_`] #these are separate tokens

    ...


    >>>nltk.regex p_tokenize(text, pattern)

    [
    ThatU.S.A.poster-printcosts¥12.40...]
    彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》
    分享到: