3.1 英文分词
分词是自然语言处理过程中对文本处理的最基本工作,是自然语言理解的基础。从语言学的角度来讲,分词是将语句拆分成各个组成单元;从搜索引擎的角度来讲,分词是将长文本拆分为可理解的短文本信息,目的是更好地进行文本分析。在中文搜索领域,分词主要包括英文分词和中文分词。
英文分词作为中文搜索领域非常重要的一部分,它的分词效果也会对结果产生非常重要的影响。英文分词相对于中文分词的算法比较简单,首先,通过指定分隔符进行英文单词切分;其次,对切分好的单词进行还原(Lemmatization),例如,将“got”还原为“get”;最后,选择是否移除停用词。
(1)单词还原。单词还原涉及两个问题:一个是词形还原,即把一个单词还原为其一般形式;另一个是词干提取,这并不是指利用词形还原词典对英文单词进行词形还原,而是指通过波特词干算法(Porter Stemmer)进行词干提取。词干提取是指还原单词的修饰形式,得到单词最一般的写法,它并不完全是词形还原,而是将单词转换为词根,如“fishing”“fished”“fish”和“fisher” 是由同一个词根“fish”转变而来的,因此只需将这4个单词还原为“fish”即可。
波特词干算法既可以利用词库实现,也可以利用规则实现。在工程应用中,一般利用规则实现:首先,处理单词复数形式及以“ed”和“ing”结尾的单词,例如,将“meetings”转换为“meet”;其次,如果单词中包含元音,并且以“y”结尾,则将“y”改为“i”;再次,将双后缀的单词映射为单后缀;最后,处理类似“-ic-”“-full”“-ness”“-ant”“-ence”等后缀。波特词干算法提取到的词干并不一定正确,但可以保证用户的输入和后台的处理是一致的。
(2)停用词处理。在搜索引擎的搜索及数据分析过程中,为了节省存储空间和提高效率,在对被处理的自然语言数据(或文本)进行分析之前,会自动过滤掉一些字符或单词,这些词被称为停用词。原因在于停用词对搜索引擎而言无法产生具体价值,对搜索结果也无法做到区分,与句子中关键词的作用恰好相反。
停用词并非自动生成的,而是手动创建的。这些停用词包括“is”“on”“at”等单词,主要包括广泛无意词和无明确限定词。广泛无意词是指虽然被广泛使用,但是在实际搜索中不会产生实际意义的词。从词性的角度来讲,停用词是一些无明确限定词,涵盖语气助词、副词、介词、连接词等单词,这些单词对于句子的重要性需要在具体的语义环境中才能体现出来。过滤掉停用词,有助于搜索引擎缩小搜索范围、减少搜索索引量和文档量,对于提升搜索引擎的整体性能有着积极的效果和作用。
对于英文分词,除按照空格正常分词的方法之外,还可以采用N-Gram分词方法。N-Gram是一种基于前后词语关系的语言模型,该模型表示当前词语仅与前面第N-1个词语相关,而与其他词汇均不相关。采用N-Gram分词方法,可以适当保持上下文关系。在N-Gram分词方法中,常常包括Uni-Gram(一元组)、Bi-Gram(二元组)和Tri-Gram(三元组),分别表示拆分句子为以一个单词为单位、以两个单词为单位、以三个单词为单位。例如,对“welcome to the national conference center”进行Uni-Gram、Bi-Gram、Tri-Gram分词,分词结果如表3-1所示。移除停用词并进行词形还原之后的句子为“welcome national conference center”。
表3-1 N-Gram分词方法的分词结果
值得说明的是,N-Gram分词方法虽然主要应用于英文,但是也可以用于其他语言文字。尤其是对未知语言的文字进行分词,可以采用N-Gram分词方法进行默认分词。