当前位置:   article > 正文

统计自然语言处理基础-第四章 基于语料库的工作(笔记)_语料库词语边界问题

语料库词语边界问题

4 基于语料库的工作

统计自然语言处理的主要需求包括计算机、语料库和软件。计算机和语料库的变化非常快,没有必要放注意力在他们上面。

本章研究 语料格式以及在处理生语料时遇到的的问题。研究工作开始之前需要对文本做的低级处理(非常重要)。

最后本章论述了数据标注问题。用程序为文本加上明确的标记,以此来指明文本的结构以及语义。主要介绍SGML标记以及XML标记入门,接着转向各个独立的主题

4.1 基础知识

4.1.1 计算机

统计自然语言需要大量的空间存储语料,还要经常从语料库中收集大量的统计信息

4.1.2 语料库

语料库是按照某个标准收集的特殊文本材料,在统计自然语言处理中,通常把感兴趣的某个领域的大量数据收集起来作为语料库,在这种情况下,训练文本的数量要比文本平衡性有用。

并没有一种方法来评定语料库的代表性,但其代表性是很重要的,选择语料库或者发布结果时,要明白语料库包含哪种类型的文本,得到的结果是否可以移植到其他感兴趣的领域。

4.1.3 软件

真正需要的软件是简单的文本编辑器和某种编程语言的编译器或者解释器。

文本编辑器

​ UNIX(或者Windows):Emacs

​ Windows: TextPad

​ Macintosh: BBEdit

正则表达式

​ 用于在文本中匹配某种模型

​ 可以描述正则语言的模式,是一种可以被有限状态自动机识别的语言。

编程语言

C/C++:对于大量数据集合来说效率高,对于一些辅助的文本处理来说,其他语言可以节省人力资源

Perl:进行文本的预处理和重新改变格式,比C快

awk:有更多的限制

Python:使用正则表达式没有Perl容易

Prolog:使用正则表达式没有Perl容易

Java:没C快,但是面向对象,自动内存管理机制。

编程技巧

1 文本编码:统计自然语言处理要处理大量的文字,C/C++的处理文字功能有限,在统计自然语言处理和信息抽取中,输入文字时,采用把数字映射到数字的方法(需要输出的时候才映射回数字),利用哈希表

2 收集计数信息:统计自然语言处理的首要工作是收集各种观察对象的出现次数,作为估计概率的基础。

​ 但是利用建立大的数据结构的方法进行计数的效果特别差

​ 比较好的办法是首先为每一个出现的对象指定一个标记,然后用程序对这些标记进行排序,最后统计个数。

4.2 文本

有两种格式:生文本 标注文本

“标注”是指把某类分类代码插入到一个计算机文件中,这种分类代码并不是文件的组成部分,但是通过这些分类代码,我们可以了解文件的结构或者格式信息。几乎所有处理文本的计算机系统都使用了某种分类标记。文本自动处理相当困难。

4.2.1 低级格式处理

垃圾格式(或内容)

需要用过滤器来过滤掉一些无用的内容,文档页眉和分隔符、排版代码、表和图表,计算机文件的无用数据

大小写

原始Brown语料库都是大写字母,但现在大写字母少了,但是如何区分两个词除了某些字母的大小写之外完全相同,怎么区分?

把句子开头的开头字母转写成小写字母,把一串连续大写的词当做标题和副标题,这样其余的大写字母单词就是名字,来区分姓名,但是有时候也有问题(必须能够正确的识别出句子的结尾)。

某种语言学派会为了强调某个词语的重要性,把这个单词写成大写,就产生了错误。

并没有一种简单的方法可以正确的检测出人名。

4.2.2 标记化:什么算是一个词

文本处理的早期工作是把输入的文本切分成词次(一个词、一个数字。一个标点符号),过程称为标记化。

处理标点有不同的方法,通常保留句子的边界,但是句子内部的标点会经常被过滤掉。

什么是词?很难回答:语言学家:在不同层次上有不同的词,例如音位词和语义词,不同的层次没有必要有完全相同的定义。计算机语言学家:前后有空格的连续字母组成的字符串,可以包含连字符和省略号,但是不能包含其他的标点符号。

但现实中的单词比这些定义要复杂

句点

去掉词语后面的标点似乎很容易,但是对于句点来说存在问题。大多数句点表示句子结束,但是其他情况表示缩写,例如etc. Calif.,在词法意义上这种现象称为缩略。

单撇号

遇到句子的缩写,例如I’m right.时,传统的语法规则就不适用了,如果切分了就会存在’s和n’t这样的词。

dog’s这样的短语如果不是dog is或者dog has的缩写,通常会被认为是dog的所有格形式。对于一个词法分析器来说,没有一种简单的方法可以确定到底是上述各种情况中的哪一种。

连字符:不同形式表示相同的词

行分割?词汇连字符(e-mail,co-operate)?帮助区分正确的词组?(26-year-old)很难区分

相同形式表示不同的“词语”

同形异义词:两个词位有着相同的形式 saw 作为名词是一种工具,也是see的过去式,这种情况下需要把saw放到两个不同的词位中去。

其他语言中的分词

中文、日文和泰文都没有空格。

德语中大多数的词语有空格分隔,但是复合名词都写成单独的词。。。

非词语分界的空格

主要问题是如何区分不是由空格分界的字符序列,返回来,把分开的词合到一起也是一个问题。在这种情况下,词语被单词分开,但是想把他当成一个单独的单词。New York 电话号码

语言学中把动词短语的习惯搭配当成一个词位。但是有时候这个短语的几个单词是分开的,所以识别动词短语的习惯搭配通常会保留到后续程序中处理。

某种语义类型信息的不同编码

电话号码的不同风格,通常是手工构造正则表达式来匹配这些格式,但是这种方法比较脆弱。

语音语料库

语音预料库包含更多的习惯用语

4.2.3 词法

是否应该把动词,过去式,过去分词转化成原形,名词复数转化成单数?

词干化:去除词缀只留词干的过程。

词干化会大幅度的提高一部分查询的效率,但是同时会使另一部分查询的效率下降。原因如下:

1 把一个词干的各种形式看成一个词位看起来很好,但是经常会浪费一些信息。

2 词法分析把一个词次切分成几个词次。实践中经常会把多字词组看成一个特殊的词次。

3 大多数信息抽取研究是在英语上做的,尽管近来多种语言工作有逐渐增加的趋势。英语和其他语言的词的构成不同。

4.2.4 句子

什么是句子

有的. 有的“ ? !,结尾(90%+)

但是有时候一些标点符号会把整个句子分开,例如: - 等

句子边界:统计学分类树 边界检测算法 最大熵系统

检测句子边界可以看成一个分类问题

句子的长度

在这里插入图片描述

4.3 数据标注

可以用手工、自动或者两者结合的半自动方法对语料进行标注。

一些文本标注仅仅是对基本结构进行标记,(句子和段落边界),另外一些方法则要标记更多东西,例如Penn树库和Susanne语料库对完整的句法进行了标注。

4.3.1 标注方案

COCOA格式:用来包含文本中的头信息(给出作者、日期、标题等等),这些信息用尖括号(<>)括起来。第一个字母表示某个域的主要语义。

最常用的语法标注形式是对每一个词添加一个词性标注,以此来表示该词的词性,这些标记方法一般在每个词的后面加一个斜杠或者下划线,之后是一个表示词性的短编码。Penn树库使用了一种类似Lisp语言的括弧在文本上标注树结构。

SGML:(最常用也是被推荐最多的)是一种可以定义文本语法的通用语言,即可以定义它所包含的标记类型。HTML是其一个实例。文本标注入门(TEI)的主要工作就是定义一种合适的标注方案从而对文本资源进行标注。XML是网络程序所用到的SGML的一个子集,支持商用。
在这里插入图片描述
在这里插入图片描述

4.3.2 语法标注

语法分析的第一步是对传统词性类别进行自动语法标注。

标注集

最有影响力的是美国Brown语料库所使用的标注集

最近来,Penn树库标注集是计算语言学领域最为广泛的标注集,是Brown的简化版。

标注集的设计

一个标注集同时依据分类目标特征和预测特征来进行编码。

分类目标特征告诉用户关于一个词的语法类别的有用信息,预测特征是对预测上下文中其他词语特性有用的特征。它们通常是相互交互的,但是没有必要等同看待。

通常,在词性系统中对标注集避行特别的改动是否可以增大预测值,并没有系统的计算方法可以计算。只要使用同样的标注集进行预测和分类,做这样的改变就有利也有弊,好比一把双刃剑:分裂标记可以得到更详细的划分,为预测提供更多有用信息,但是同时这也使得分类工作变得更不容易。因此,在标注集规模和自动标注的效果之间没有一个简单的关系。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/353670
推荐阅读
相关标签
  

闽ICP备14008679号