Words, morphology, and lexicons 词、词法和词汇

Morphology(形态学)

关键概念: words are not atoms
单词不是原子,它是由 morphemes(语素) 构成的。如 misunderstandings,我们可以将其分解为 mis-understand-ing-s。

morphemes(语素)

语素的种类:

  • Roots(词根)
    一个单词最核心的语素,代表着这个单词最主要的含义。或者把它称为 stem(词干)?
  • Affixes(词缀)
    • Prefixes(前缀)
      • pre-nuptual, ir-regular
    • Suffixes(后缀)
      • determin-ize, iterat-or
    • Infixes(中缀)
      • Pennsyl-f**kin-vanian
    • Circumfixes(位缀)
      • ge-sammel-t

concatenative morphology(毗邻性语素) 主要指前缀和后缀这一类语素,词是由一定数目的语素毗邻在一起而组成的。
nonconcatenative morphology(非毗邻性语素)

  • Umlaut
    foot : feet :: tooth : teeth
  • Ablaut
    sing, sang, sung
  • Root-and-pattern(词根与模式语素) or templatic morphology(模板语素)
    通常在阿拉伯语和其它闪美特语系中(Eg. Arabic, Hebrew, Afroasiatic languages)。如在希伯来语中,动词通常由词根和模板组成,词根又通常由3个辅音组成。
  • Infixation

words(词)

从语素构成单词的方法主要有两大类(可能部分交叉):inflection(屈折)和 derivation(派生)。

Inflectional morphology(屈折形态学)

  • 屈折把词干(stem)和一个语法语素(grammatical morpheme)结合起来,形成的单词一般和原来的词干术语同一个词类(word class),还会产生诸如“一致关系”之类的句法功能。
  • Examples
    • Number (singular versus plural) automaton → automata
    • Case (nomina:ve versus accusa:ve versus…) he, him, his, …

Derivational morphology(派生形态学)

  • 派生把词干(stem)和一个词缀(suffixes/affixes/infixes)结合起来,但是形成的单词一般属于不同的词类(word class),具有不同的含义(meaning)。
  • Examples
    • parse → parser
    • repulse → repulsive

补充:
英语的名词通常只有两种屈折变化:一个词缀表示复数(plural),一个词缀表示领属(possessive)。动词的屈折变化稍为复杂。英文动词有三种:主要动词(如 eat, sleep),情态动词(如 can, will, should) 和基础动词(如 be, have, do)。主要动词还分规则动词和不规则动词,不同种类的变换各有不同。详见《自然语言处理综论》by Daniel, James P39。
英语的屈折比其它语言相对简单,但英语的派生却相当复杂。名词可以由动词或形容词变换得到,形容词也可以从名词和动词派生。

Final-State Automaton(有限状态自动机)

关键概念: 形式语言(formal language) 是一个模型,这个模型能够而且只能够生成或识别满足形式语言定义所要求的某一形式语言的符号串。而 自然语言(Natural language) 是现实中人们所说的语言,两者可能完全不同,然而我们通常使用形式语言来模拟自然语言的某些部分。

有限状态自动机(FSA) 是解决形态学(Morphology)问题的主要方法。可以用 FSA 识别的语言我们称为 regular language。

正则表达式 vs 有限状态自动机:

  • 正则表达式是描述有限状态自动机的一种方法
  • 任何正则表达式都可以用有限状态自动机来实现
  • 任何有限状态自动机都可以用正则表达式来描述
  • 两者彼此对称

FSA 模型:
FSAmodel.jpg

一个经典例子是用 FSA 来识别羊的语言。我们把羊的语言定义为由下面的(无限)集合构成的任何字符串:

 

1

2

3

4

 

baa!

baaa!

baaaa!

...

描述这种羊的语言的正则表达式是/baa+!/,下图就是模拟这种正则表达式的一个自动机(automaton)。这是一个有向图,包括点(或结点)的有限集合和两个点之间的有向连接的弧的集合。圆圈表示点,箭头表示弧,这样一个自动机有 5 个状态,状态 0 是初始状态(start state),用进入的箭头表示;状态 4 是最后状态(final state) 或接收状态(accepting state),用双圈来表示,另外还有 4 个转移(transition),用弧来表示。
FSAeg.jpg

自动机从 q0 开始,反复进行如下过程:

  • 寻找输入的下一个字母,如果与自动机中离开当前状态的弧相匹配,那么就穿过这个弧,移动到下一个状态
  • 如果输入的字母已经读完,那么进入接收状态(q4),自动机就成功识别了输入。如果自动机总不能进入最后状态,或者输入已经读完,又或者某些输入与自动机的弧不匹配,或是自动机在某个非最后状态停住了,我们就说,自动机拒绝(reject)输入。

算法:
FSAalg.jpg

其它例子:
FSA for English Nouns:

noun.jpg

FSA for English Adjective:
adj.jpg

FSA for English Deriva:onal Morphology:
der.jpg

Morphological Parsing(形态剖析)

主要有三种方法

  • Table
  • Trie
  • Final-state transducer

这里主要介绍第三种:有限状态转录机

Final State Transducers(FST)

FST 模型:
FSTmodel.jpg

FSA vs FST:
FSA 主要是来表达正则语言,主要作用是 识别(recognize) 语言;而 FST 既能够 识别(recognize) 语言,也能够 产生(generates) 语言,它可以剖析(parse)输入,或者把输入转化(transform)成另一种表达方式。

举个例子:

 

1

2

 

Input: a word

Output: the word’s stem(s) and features expressed by other morphemes.

FSTeg.jpg

第二列输出包含了词干和有关的形态特征(feature),这些特征说明了附加在词干上的有关信息。如 +N 这个特征表示这个词是名词,+SG 表示单数,+PL 表示复数。

输入 cats,经过形态剖析后可以得到输出 cat+N+PL,这样我们就知道 cat 是一个复数名词。我们使用的是 双层形态学(two-level morphology) 的方法来进行的形态剖析。把一个词表示为 词汇层(lexical level) 和 表层(surface level) 之间的对应,词汇层 表示组成该词的语素之间的简单毗邻关系,表层 表示该层实际拼写的最终情况。形态剖析要建立 映射规则,把在表层上的字幕序列(如 cats) 映射为词汇层上的语素和特征的序列(cat+N+PL),两个层之间的映射的自动机就是 有限状态转录机(Final State Transducers)。有限状态转录机通过有限自动机来实现这种转录,因此我们通常把 FST 看成具有两层的 FSA,FST 具有比 FSA 更多的功能;FSA 通过确定符号集合来定义/识别形式语言,而 FST 则定义符号串之间的关系,这样就可以从另一个角度把 FST 看成是读一个符号串并生成另一个符号串的机器。

可以通过 4 个角度来看 FST:

  • 作为识别器(recognizer)
    符号串的偶对作为输入和输出,如果该符号串偶对也在语言的符号串偶对(pair)中就接收,否则拒绝
  • 作为生成器(generator)
    输出 yes 或 no 以及输出符号串的偶对
  • 作为翻译器(translator)
    读一个符号串,输出另一个符号串
  • 作为关联器(relater)
    计算两个集合之间的关系

其它例子:
FSTeg2.jpg

补充:
为了建立一个形态剖析器,至少需要:

  • 词表(lexicon):词干和词缀表及其基本信息(如一个词干是名词词干还是动词词干等)
  • 形态顺序规则(morphotactics):关于形态顺序的模型,解释在一个词内什么样的语素跟在什么样的语素后面。如英语表示复数的语素要跟在名词后面而不是前面
  • 正词法规则(orthographic rule):当两个语素结合时在拼写上发生什么变换。如 y->ie。

有很多 FST 的工具包,可以 compile & rewrite FST 的规则,也可以将不同规则进行合并。
FSTcom.jpg

Stemming

讲了无数遍的概念,就不展开了。

 

1

2

 

Input: a word

Output: the word’s stem (approximately)

Tokenization

讲了无数遍的概念,就不展开了。

 

1

2

 

Input: raw text

Output: sequence of tokens normalized for easier processing.

猜你喜欢

转载自blog.csdn.net/u014033218/article/details/89290090
今日推荐