最近在学习自然语言处理,在建立基础标签库时,遇到一个需要提取语料中的英文单词的工作,做好了现在来和大家分享下。
实现效果:读取文件内容,把其中的英文单词提取出,并统计词频。提取时,原本不是连在一起的单词可以分开独立提取,例如:我的PPT和WORD,可以提取出PPT,WORD两个单词。
基本思想:如果直接用正则表达式把其他非字母字符都过滤掉,那么剩下的英文单词就会连在一起了,所以,在处理时,应该保留下分隔英文单词的字符。首先文本可能会存在乱七八杂的符号,先把这些符号过滤掉(包括数字也可以过滤掉,看自己需要),然后剩下的就是英文和中文啦,这时候再把英文按中文分开提取就好啦。
举个栗子:我要处理的文本内容是:我的#……¥@PPT和#@WORD
第一步:过滤乱七八糟符号后(用正则表达式就好啦),变为:我的PPT和WORD
第二步:把中文换为*号(同样用正则表达式就好啦),变为:**PPT*WORD
最后:按*号分开提取(用StringTokenizer),变为:PPT WORD
也就是这样的逻辑:
-------------------------------------------------