精华内容
下载资源
问答
  • 前言:心血来潮看了一个自然语言处理公开课,牛柯林斯讲授的。觉得很好,就自己动手把它的讲稿翻译成中文。一方面,希望通过这个翻译过程,让自己更加理解牛的讲授内容,锻炼自己翻译能力。另一方面,造福人类,...

    前言:心血来潮看了一个自然语言处理公开课,大牛柯林斯讲授的。觉得很好,就自己动手把它的讲稿翻译成中文。一方面,希望通过这个翻译过程,让自己更加理解大牛的讲授内容,锻炼自己翻译能力。另一方面,造福人类,hah。括号内容是我自己的辅助理解内容。 

    翻译的不准的地方,欢迎大家指正。

    课程地址:https://www.coursera.org/course/nlangp

    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(一):自然语言处理介绍-1


    导读:这节课柯老师引出三个问题:什么是自然语言处理?为什么自然语言处理如此困难?这个课程是什么样子的?柯老师会在这节课和下节课就这三个问题进行解答。这节课里面柯老师给我们介绍了标注、句法分析等自然语言处理基本问题和机器翻译、信息抽取、文本摘要、对话系统等应用。 通过这些来回答他的第一个问题。



    Okay, so welcome to Natural Language Processing. My name is Michael Collins, I'm a professor in Computer Science at Columbia University.I've taught this course for several years now, most recently at Columbia, and before that at MIT. Natural language processing is I think, a tremendously exciting field.It builds on insights from computer science, from linguistics, and as we'll see, increasingly from probability and statistics. It's also having a huge impact in our daily lives. Many, many applications and technologies are now making use of basic ideas from Natural Language Processing. So, in this introductory lecture, we're going to cover a few basic points.

            欢迎大家来到自然语言处理课程,我是来自哥伦毕业大学计算机系的教授迈克尔-柯林斯(个人主页:点击打开链接)。这门课我已经教授过多年,大部分是在近几年哥伦比亚大学教授的。在来哥伦比亚大学之前我呆在麻省理大学,在那里我也教过这门课程。在我看来,自然语言处理是一个令人非常兴奋的领域。它建立在对计算机,对语言学的深刻理解之上,当然,我们也将看到它越来越依靠概率和统计。自然语言处理对我们的日常生活也有着很大的影响,非常多的技术和应用正在利用着自然语言处理的基本思想。在这个课程里面,我们将要讲授一下几个基本的要点。



    The first question we're going to ask is, what is Natural Language Processing? So, we'll discuss a few key applications in NLP and also a few key problems that are solved in Natural Language Processing. The second question we'll consider is, why is NLP hard? So, we'll consider some key challenges that we'll find in natural language processing. Finally, I'll talk a little bit about what this course will be about, what kind of material we'll cover in this course, and what in general you should expect taking this course? So, at a high level, natural language processing concerns the use of computers in processing human or natural languages. So, on one side of this problem, we have what is often referred to as natural language understanding where we take text as input to the computer and it then processes that text and, and does something useful with it. At the other hand, we have what is often referred to as natural language generation. Where a computer, in some sense produces language in communicating with a human or user.

            第一点,我想问大家的是,什么是自然语言处理?在这里我们会讨论一些在自然语言处理领域的牛叉的应用和一些被解决的关键问题。第二点,为什么自然语言处理如此困难?我们会思考一些我们在自然语言处理遇到的巨大挑战。最后一点,我会聊聊这个课程是什么样的,在课上会接触到哪些东西,一般而言你们学生希望从课堂上获得什么。从更高一个层次来看,自然语言处理关心的是如何利用计算机处理人类语言或者自然语言。一方面,我们通常称之为自然语言处理自然语言理解:我们的将自然文本输入计算机,让计算机去处理去从中获取有价值信息。另一方面,我们通常称之为自然语言生成:在某种意义上可以说机器生成一种与人类沟通的语言(机器理解人类的输入,可以与人沟通)。


    One of the oldest applications and a problem of great importance is machine translation. This is the problem of mapping sentences in one language to sentences in another language. And this is a very, very challenging task. But remarkable progress is being made in the last 10 or 20 years in this area. So here, I have an example translation from Google translate which many of you will be familiar with, this is a translation from Arabic into English. And, while these translations perfect, you can still understand a great deal of what was said in the original language. So, later in this course, we'll actually go through all of the key steps in building a model in the machine translation system.

              一个比较经典的应用是机器翻译,同时它也是一个非常重要的难题。这个难题就是将一种语言的句子映射到另一种语言上去。这是一项非常非常具有挑战性的工作。但是最近十到二十年这个领域取得了巨大的进步。在此,我会向大家展示几个大家都比较熟的谷歌翻译上自动翻译的例子,额,这个是一个从阿拉伯语翻译到英语的例子。大家看得到,谷歌翻译的非常漂亮。(通过自动翻译的句子)你可以了解到原文(阿拉伯语)意思。额,在接下来的课程中,我们会将搭建一个机器翻译系统中关键几步梳理一遍。


    So, a second example application is what is often referred to as information extraction. So, the problem in this case is totake some  text as input and to produce some structured, basically a database representation of some key content in this text. So, in this particular example, we have input which is a job posting. And the output captures various important aspects of this posting. For example, the industry involved, the position involved, the location, the company, the salary, and so on. And you'll see that this information is pulled out from this document. So, the salary in this case comes from this, this portion here. So this is a, a critical example of a natural lang, language on the standing problem where the promise to, in some sense understand this input were unstructured text and to turn it into a structured data base kind of representation. So there's some clear motivation for this particular problem, information extraction. Once we've performed this step, we can, for example, perform complex searches. So say I want to find all jobs in the advertising sector paying at least a certain salary in a particular location. This would be a search that is very difficult to formulate using a regular search engine, but if I first run my information extraction system over websites all of the job postings that I find in the web. I can then perform a database query and, and perform much more complex searches such as this one. In addition, we might be able to perform st, statistical queries. So we might be able to ask you know how is the number of jobs in accounting changed over the years, or what is the number of jobs in software engineering in the Boston area posted during the last year.
      
    嗯,第二个应用就是我们通常说的信息抽取。这个应用下的问题就是将一些文本作为输入,产生结构化、数据库基本表示的文本核心内容。展示一个例子,我们输入一则招聘启事,输出显示了这则招聘启事的各个重要信息。比如涉及的行业、涉及的职位,工作地点,公司,薪水等等。你可以看到输出的信息就是从上面这则招聘启事抽取出来的。你看,薪水在招聘启事这一块提及,在这里。(画面上是柯林斯用比指着招聘启事的一行)。这是自然语言理解的一个重要例子我们希望(计算机)在一定程度上理解无结构化的文本输入,并将它转化为一种数据库结构化表示。额,对这个信息抽取问题,我们的动机很明确:一旦我们能够达到这一步,我们就能够做一些非常复杂的搜索。(画面显示搜索的一个query):I want to find all jobs inthe advertising sector paying at least a certain salary in aparticular location.对普通的搜索引擎来说,这是一个非常难解决的搜索。(要对这句话进行语义理解,而不是简单字面匹配)。但是如果我先使用我的信息抽取系统对网上能找到的招聘启事进行处理,我们就可以执行数据库查询,回答像上面一样复杂的搜索。另外,我们可以执行统计搜索,告诉你会计方面的岗位近几年的变化,告诉你去年波士顿地区软件工程岗位的数目。


    Another key application in natural language processing is text summarization. And the problem in this case is to take a single document or, potentially a group of several documents and to try to condense them down to a summary. Which, in some sense, preserves the main information in those documents. So here, I actually have an example screenshot from a system developed at Columbia, which is called News Blaster. And this is actually a multi-document system. It will take multiple documents on the same news story, and produce a condensed summary of the main content of those documents. So in this particular example, we have a large group of documents all about vaccination program. And here is a summary which attempts to capture the main information in all of these documents. So summarization again has clear motivation in making sense of the vast amount of data or text available on the web and the news sources, and so on. It's very useful to be able to summarize that data.

        另一个自然语言处理应用就是文本摘要。这里的问题就是输入单个或者多个文档,试着将他们融合为一个显示这些文档主要内容的摘要。在此,我有一个来自哥伦比亚大学的News Blaster系统截图。这个系统实际上是一个多文档摘要系统。系统会处理相似新闻报道的多文档,生成一个显示这些文档主要内容的摘要。在这个特定的例子中,我们有一大批关于疫苗接种计划的文档,嗯,这就是(画面显示一些文字)这批文档的摘要,他试图去总结这批文档的主要内容。摘要在利用互联网上大量的新闻数据方面也有着明确的动机,对这些数据进行摘要是一件非常有用的事情。


    Another key application is what are called dialogue systems. And these are systems where a human can actually interact with a computer to achieve some task. So, the example I've shown here is from a flight domain, where a user is attempting to book a flight. And so the user might come with some query to the system. And the system then goes and processes this query, in some sense it understands that query. And in this particular case it realizes that there's a piece of missing information, namely the day of the flight and so the system them responds with a query, what day are you flying on? The user provides this information and the system returns a list of flights. So in dialog systems the basic problem is to build a system where the user can interact with a computer using natural language. And notice that this type of system involves both natural language understanding components, we have to understand what the user is saying. And there's also importantly a natural language generation component. In that we're going to have to generate text in some cases. For example clarification questions as we've shown here.

    还有一项关键应用就是我们所说的对话系统,人类可以与计算机进行真实互动去完成一些任务。额,在此,我向大家展示一个来自航空领域(的人机对话)。这里用户希望定一个航班,所以呢,用户就对系统进行请求,然后,系统处理请求后在一定意义上理解请求,这时候系统发现(用户请求)有一个没有说明白的信息,即day of the flight(用户定航班的时间)。系统理解对用户回复一个对话:what day are you flying on?。用户收到这个对话后提供时间时间给系统,系统收到信息后返回符合用户需求的航班列表。从这个例子我们可以看到,一个对话系统的基本问题就是建立一个人类可以使用自然语言与计算机互动的系统。我们注意到这个系统涉及自然语言理解:计算机需要理解用户所说的。另外还涉及自然语言生成部分:计算机需要生成(供用户理解的)文本。就像上面我们展示的计算机回复的对话(what day are you flying on?)。


    So in addition to the applications I've just described, we'll also consider some very basic natural language processing problems which on depend many of these applications. And the first, we'll talk about is something called the tagging problem. So abstractly tagging problems take the following form. As input we have some sequence, in this case a sequence of letters and as output we are going to have a tagged sequence where each letter in the input now has an associated tag. This is probably best illustrated through a couple of examples. The first one is part-of-speech tagging. So the problem in this case is to take a sentences input, for example profits, soared, at Boeing Co and so on, and to tag each word in the input with its part of speech. So N stands for Noun, V stands for verb, P stands for preposition, ADV stands for adverb, and so on and so on. So, this is one of the sort of, most basic problems in natural language processing. If you can perform this mapping with high accuracy, it's actually useful across a very wide range of applications.

    除了我刚才所提的应用之外,我们再来看看一些自然语言处理的基础问题,很多应用都要靠他们做支撑。首先,我们聊聊标注问题,简单的说标注就是下面这个样子。这些序列(字符)作为输入,输出上我们会得到一个被标注的序列。这里呢,输入的字符会捆绑上一个标签。还是通过几个例子来展示下吧。第一个例子就是词性标注,这里的问题就是将一个句子作为输入,比如输入profits,soared, at Boeing Co对输入句子的单词标注出它的词性。额,这里N代表名词,V代表动词,P代表介词,ADV代表形容词等等。这是自然语言处理基础问题系列中的一个,如果你能将这个映射过程的精度提高,它对很多很多应用都有极大的帮助。


    The second example of a tagging problem is what's called named entity recognition. So the basic problem here is, again, to take some sentence's input. And now, to identify basic entities in that sentence. So, entities are things like companies. So we have Boeing Co here. Locations. Wall Street here. We might also, for example, identify people. Again, named entity recognition is a very basic problem. But it's clearly very useful in many applications to be able to identify companies, locations, people, and other entity types. This problem could be again this problem could again be framed as a tagging problem where each word in the input is tagged either as not belonging to any named entity, so NA means we're not part of an entity, or we might be part of a company. Sc means we have the first word in a company, it's a start company. Cc means we have the continuation of a company. And similarly, SL means we have the start of a location. Cl means we have the continuation of a location. So again abstractly, a tagging problem is a problem of mapping an input sequence of items, usually words to some tag sequence, where each word in the sequence has an associated tag.


    第二个标注问题例子就是我们所说的实体识别。这里的问题同样是将一句话作为输入,但现在问题是识别句子中的基本实体。额,实体就是一些像公司之类的东西。拿Boeing Co here.Locations. WallStreet here. Locations. Wall Street here.这句话来说,我们可以识别人名。再次强调,虽然命名实体识别是一个基础问题,但是识别出公司、地址、人物等等实体类别对很多应用是十分有用的。这个实体识别问题可以由标注问题深入,这里给输入的字符标记命名实体:NA表示他不属于任何实体,或者有的字符属于公司(命名实体)的一部分,Sc表示公司(命名实体)的开始部分,Cc表示公司(命名实体)的组成部分。类似地,SL表示地址(命名实体)的开始部分,CL表示地址(命名实体)组成部分。简单的说,标记问题就是一个输入序列的映射问题,通常是将字符映射到标记序列,使每个字符都有自己的标记。


    These are two key problems, and there are many, many others. Another basic problem in natural language processing is the problem of natural language parsing. And this goes back to work in linguistics, going back to sort of the foundation of modern linguistics with Noam Chomskys work in the 1950s. The problem here is again to take some sentence as input, and to map this to some output, which is usually referred to as a parse tree. So we'll talk a lot about this later in this course, but at a very high level. The parse tree essentially gives some hierarchical decomposition of a sentence. Corresponding to its grammatical structure. And once we've recovered these kind of representations. We can, for example, recover basic grammatical relations. The fact that Boeing is the subject of this verb is, or the fact that this prepositional phrase in Seattle is a modifier to located. So, again this is a very basic problem in natural language processing. Well see that, if you can recover these representations with high accuracy. It's useful, again across a very wide range of applications to gain a first basic step in natural language understanding. And trying to make sense of what an underlying sentence means.And it's also quite challenging problem.

    这里举例两个关键的问题,但是自然语言处理中有着很多其他的基础问题。另外一个基础问题就是自然语言处理句法分析。这项工作始于语言学,始于二十世纪五十年代Noam Chomskys的现代语言学基础工作。这里我们仍然使用一些句子作为输入,将它映射到输出,通常输出被称之为句法树,后面课程中我们会深入句法树。句法树是依照其语法知识对句子进行基本的层次分解。一旦我们可以识别出这种表示,我们可以识别出基本语法单元的关系。比如,Boeing是这个动词的主语,介词短语in Seattle是located的修饰语。再次强调,这是一个自然语言处理的基础工作,如果你能提高这些表示识别准确率,它对很多很多自然语言理解方面的应用都有极大的帮助。试图去理解一句话的潜在含义是一件非常具有挑战性的工作。


    <第一节完>


    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(二):自然语言处理介绍-2

    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(三):语言模型介绍-1

    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(四):语言模型介绍-2


    展开全文
  • 前言:心血来潮看了一个自然语言处理公开课,牛柯林斯讲授的。觉得很好,就自己动手把它的讲稿翻译成中文。一方面,希望通过这个翻译过程,让自己更加理解牛的讲授内容,锻炼自己翻译能力。另一方面,造福人类,...

    前言:心血来潮看了一个自然语言处理公开课,大牛柯林斯讲授的。觉得很好,就自己动手把它的讲稿翻译成中文。一方面,希望通过这个翻译过程,让自己更加理解大牛的讲授内容,锻炼自己翻译能力。另一方面,造福人类,hah。括号内容是我自己的辅助理解内容。 

    翻译的不准的地方,欢迎大家指正。

    课程地址:https://www.coursera.org/course/nlangp

    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(二):自然语言处理介绍-2


    导读:接着上一节课,本节课柯老师继续回答他提出的余下问题。就语音级别、句法级别、语义级别、篇章级别中的歧义问题来说明自然语言处理的困难之处,最后柯老师就课程安排和课程要求做了简单的介绍。


    So next I want to talk about some key challenges in NLP answering the question why is NLP hard. And we're actually going to focus on one particular problem, namely the problem of ambiguity which is seen time and time again in natural language problems in applications.

    接下来我想讲讲一些自然语言处理的挑战,通过这来回答第二个问题:为什么自然语言处理如此困难?我们将会关注一个特殊的问题,即歧义问题。这个问题在自然语言处理技术上遍地都是。


    So to illustrate this we'll take an example sentence. This is actually from Livian Lee, and the sentence here is, At last, a computer that understands you like your mother. And I think this was taken from some marketing blog for a natural language understanding system sometime back in the 1980s I believe. The problem, of course, with this sentence is that it is actually ambigu, ambiguous. There are at least three re, readings or interpretations of this sentence. So let's go over that. So the intended meaning was probably this. It's saying that the computer understands you as well as your mother understands you. But if you look a little harder, you'll see that there are a couple of other possible interpretations. So one is, that the computer understands the fact that you like your mother. So at last a computer that understands you like your mother. Another interpretation, the computer understands you as well as it understands your mother. So at last a computer that understands you like your mother. And then, even if we look at these 2 interpretations, 1 and 3 alone. There's a question of, of whether this means, you know? Does the computer understand you well is the context. Does your mother understand you well? Without knowing that, you can't answer that question.

    为了更好说明问题,我们用一个句子来举例。这是一个来自Livian Lee的真实例子,句子是这么样的:At last, a computer that understandsyou like your mother. 我记得这个例子出处,大概是在二十世纪八十年代为自然语言理解所做的一个营销博客。当然这个句子的确存在歧义。它至少有三种理解方式。我们大家一起来看看,这句话的原意可能是It's sayingthat the computer understands you as well as your mother understands。但是如果你仔细看看,你会发现其他两种可能的解读,一种是the computer understands the fact that you like your mother,另一种理解是the computer understands you as well as it understands your mother。现在,即使我们单独看第一种和第三种解读,我们自己也无法明白这句话上下文是computer understand you well还是your mother understand you well。如果不能知道上下文,我们就无法回答这个问题,这样歧义就在此出现了。


    And then we have a similar ambiguity here. So ambiguity also occurs at the acoustic level. And this is a, a key problem in speech recognition.
    So again, if we come back to this example sentence, then from a purely acoustic point of view this sequence like your, can be confused with other things. So, for example like cured is a valid sequence of two words in English. And acoustically, these two things might be quite confusable. Of course, this is much more plausible as a sentence in English than this. But nevertheless, if a speech recognizer was to rely on acoustic information alone, it's going to have to deal with all kinds of ambiguities like this where two words or two sequences of words are confusable.

    这是语音识别的一个关键问题。额,我们回到前面的例子,从纯粹的声学角来看,序列‘like your’会被其他序列所混淆。额,比如序列‘like cured’就是一个英语中有意义的序列。在听觉上,这两个序列很容易被混淆。当然,对比下一句(a computer that understands you like cured mother.),上面一个句子(a computer that understands you like your mother.)在英语中更加合理。但是如果一个从事语音识别的人仅仅依靠声学信息(进行语音识别),他将会遇到很多类似容易混淆的歧义序列。


    It's interesting to note that many of these ambiguities manifiest themselves at the syntatic level. What I mean by that is they manifest themselves in the parsing problem that I showed your earlier. So different structures at the parsing level, again these, these [unknown] parse tree I showed you, lead to different interpretations. So in fact these two interpretations where the computer understands you, as well as it understands your mother.
    This is it understands the fact that you like your mother Actually, correspond to two quite different syntactic structures. So one of the key problems in natural language parsing, is essentially disambiguation. Choosing between different syntactic structures corresponding to different  interpretations.

    有意思的是,这些歧义也会出现在句法层面上。我的意思是他们(歧义)会在之前展示的句法问题中出现。额,(歧义会导致)句法层面上(出现)不同的结构。(右边)这棵句法树导致(句子)不同的含义。额,这两种不同的解读分别是the computer understands you, as well as it understands your mother.(左边句法树的含义)和it understands the fact that you like your mother.(右边句法树的含义),他们各自对应着不同的句法结构。自然语言处理句法分析的一个关键问题就是消除歧义。从对应不同含义的不同句法结构选择(合适的句法结构)。


    Here's yet another level of ambiguity in language. This is roughly speaking, what we might call the semantic level. And this is an instance of what is often referred to as word sense ambiguity. So, if you look at it in a dictionary, you, if you look at many words in English or other languages, they have multiple different meanings, depending on the context. So again mother was a word in that sentence I showed you previously if look in a dictionary you'll find the conventional or rather the, the, the frequent usage of this word. But you also find a much less much less frequent usage which is given here. And a natural language processing system will have to disambiguate between these two meanings. Here's a bit more on word sense ambiguity, so if I take the sentence, "They put money in the bank", it's pretty clear here what we mean by bank. But there is an interpretation where the money is buried in mud, so we're going to have disambiguate this word to work out which of these interpretations is intended. Here's another example, I saw her duck with a telescope. So this sentence is actually ambiguous in multiple ways. I could be looking at her duck using a
    telescope. I could be looking at her duck who has a telescope. You can go through many other examples. But there's a key word sense ambiguity
    here which is the word duck. Duck can refer either to the animal or it can refer to the process of ducking, the verb to duck and that leads to two quite different interpretations here.

    这个是语言中另外一个层次的歧义。大致的讲,我们称这一个层次为语义层。这个例子就是我们通常所说的词义歧义。额,如果你去查查字典,你会发现英语或者其他语言中,有一些词语在不同的上下文中会有着不同的语义。看这里,比如mother这个词,如果你查字典你会查到它的常规用法或者高频用法。但是你也会发现它的一个很少很少出现的(语义),这里我们给出这个语义。一个自然语言处理系统必须从这两种语义中进行歧义消除。再讲词义歧义另外一个例子,看这句话They put money in the bank. 很明显这里‘bank’是什么意思。但这里有另外一种解读: the money is buried in mud。(bank有银行,岸边之意)。所以我们要对这个bank单词进行歧义消除,去找出它想表达的含义。再来一个例子I saw her duck with a telescope. 这句话有多种歧义。这句话解读为I could be looking at her duck using a telescope. 或者I could be looking at her duck who has a telescope. 你可以这么解读其他的一些歧义例子。但是这里单词duck有很重要的词义歧义。Duck可以理解为动物或者理解为回避这个动作--duck的动词含义,这就在这句话里产生两种不同的解读。


    So yet another level of ambiguity is at the discourse level and what I am going to show you here is an instance of an anaphora. This is a problem of a pronoun for example, she and revolving it resolving it to the entity that it refers to in a word. So, let's again assume that we have our sentence, except here I have Alice says, as the, the start of the sentence. And let's say the continuation is, but she doesn't know any details. Actually, I have two possible continuations here. But she doesn't know any details, or but she doesn't understand me at all. So she could refer to two different things. It could refer to your mother. Or it could refer, at refer to Alice. And so there's an ambiguity here that we need to resolve. We need to figure out which one of these two entities in the past she is referring to. And actually it's going to differ for these two cases. If I say, but she doesn't know any details, by far the most plausible interpretation is that she is referring to Alice. But if I say, but she doesn't understand me at all, in this case by far the most likely interpretation is that she refers to your mother. So this is again a very challenging proposition, taking pronouns and figuring out what entity they refer to in the past discourse.

    额,另一个层次的歧义就是篇章歧义。接下来我会给大家举一个指代方面歧义的例子。这是一个名词(指代歧义)例子。单词she消解到它所指代的实体。句子这里Alice says是句子的开始,让but she doesn't know any details.成为句子的成分。实际上这里我们有两种可能成分:But she doesn't knowany details, 或 but she doesn't understand me at all.所以单词she可能指代两个不同的事物,它可能指代your mother也可能指代Alice。这就是我们必须解决的歧义问题。我们必须明白she指代前面句子中哪个实体,这里有两种不同的情况,如果(句子的成分是)but she doesn't knowany details,这种情况下最可能的潜在含义是she指代Alice。但是(句子的成分是)but shedoesn't understand me at all,这种情况下最可能的潜在含义是she指代your mother。额,所以呢,弄清楚名词指向前文的哪个实体是一个非常具有挑战性的命题。


    So the final thing I want to talk about in this lecture is the contents of the course. What will this course actually be about? And so we're going to cover several topics in this course. One thing we'll look at is the basic, and [inaudible] sub problems that I mentioned earlier. Problems such as part of speech tagging, parsing, models for word sense disambiguation, and so on. A second major focus of this talk will be on machine learning or statistical methods for natural language processing. So machine learning techniques have become extremely prevalent for all of the natural
    language applications and problems that I described earlier. As one example, modern machine translation systems are trained automatically from vast numbers of example translations. Statistical methods are used to induce dictionaries and other kind of models for that translation problem. So we'll talk about many basic mathematical or computational models based on machine learning techniques applied to language. These include probabilistic context free grammars hidden markov models. We'll talk about estivmation and smoothing techniques right at the start of the calss. We'll talk about a famous algorithm called the EM algorithm which is widely applied in speech recognition and also machine translation.

    最后我们就讲下这个课程的主要内容。这是课程到底什么样子呢?后面课程我们将会涉及下面几个主题。第一大块呢,我们看下是我之前提及一些基础问题,像词性标注问题,句法分析,词义歧义消除模型等。课程的第二大块是自然语言处理(涉及的)机器学习,或者称为统计方法。额,在我之前讲到的自然语言处理应用和问题汇总,机器学习技术已经非常普及。比如,现在的机器翻译系统可以从大量的翻译示例中自动训练,使用统计方法产生字典和其他的翻译问题模型。我们会讲讲一些使用在语言上的基于机器学习技术基本数学或者基本计算方法。他们包括:probabilisticcontext free grammars(概率上下文无关文法) hiddenmarkov models(隐马尔科夫模型). 课程之初我们会讲到estimation and smoothing techniques (估计和平法方法)。我们也会讲到非常著名的算法:EM算法,这个算法广泛的使用于语音识别和机器翻译上。


    We'll talk about a very important class of model, called log-linear models later in the class, and so on. And finally we will talk about various applications including information extraction, machine translation, and possibly natural language interfaces. So here is a syllabus for the class, we're going to start off with a problem called the language-modeling problem, which will be in some sense a warm-up. Introducing many important ideas, particularly an idea called smooth destination. We'll then talk about tagging problems, such as part of speech tagging and identity recognition. And we'll talk about hidden Markov models, which are a key model for these tagging problems. We'll talk about the parsing problem that I described earlier, and we'll talk about models for that problem. We'll then have a few lectures on machine translation where you'll see more or less from the ground up how we can build a modern machine translation system.

    我们会讲到一类非常重要的模型,我们课堂上称之为log-linearmodels(对数线性模型)等。最后我们会聊聊一些诸如信息抽取、机器翻译、自然语言接口等应用。看看我们的教学大纲,我们从一个叫做语言模型的问题开讲,这可以说是我们一个热身吧。这里会介绍一些重要的思想,特别是一种叫做平滑的思想。然后,我们会讲到标注问题,比如词性标注、实体识别等。这里这些标注问题隐的关键模型—隐马尔科夫模型会被介绍。接下来呢,之前提及的句法分析问题会被讲到,这快的一些模型也会被介绍。我们会花几节课时间学习机器翻译,大家可以多多少少的知道如何从底层搭建起一个现代的机器翻译系统。


    Next we'll talk about log-linear models and discriminative methods. These are a key model in statistical natural language nowadays. And they're applied to several problems which we'll go over in these lectures. And then finally, to finish up, we'll talk about semi-supervised and unsupervised
    learning for NLP, which is a, a very important topic and a huge area of con research. So in terms of prerequisites for the class, coming into the class you should know some basic linear algebra. Some basic probability will be key, so you should know what discreet distribution is, what a random variable is. And finally, some basic knowledge of algorithms in computer science. And secondly, there are going to be some programming assignments on the course, so you should have some basic programming skills. For example, if you can program in Python or Java, that should be plenty for this course. One of these two program languages will be plenty for this course. Finally, in terms of background reading for the course, there are a couple of resources. So over the years I have developed some fairly comprehensive notes for many of the topics. Actually for all of the topic's you'll see in the course, so if you go to my webpage you'll find a link to those notes, and thou, they should be very useful in, asbackground for reading lectures. And in addition, as additional context I'd recommend you Jurafsky and Martin speech and language processing text book, this is by no means essential, but if you want to, want to read more on the subject, this could be very useful.

    我们会继续讲到对数线性模型和判别式方法。这些是当今统计自然语言的关键模型。他们会被应用于一些我们课上提及的问题。最后,我们会谈一些自然语言处理上半监督和无监督学习,这是一个非常重要的话题和一个很广阔的研究领域。当然上这门课需要一些准备知识,你需要一些基本的线性代数知识,一些基本的统计知识也是必须的。你要了解什么是离散分布啊,什么是变量啊。一些基本的计算机算法知识也是需要的。其次,课上会布置一些编程任务,所以你需要具备基础编程技术,会个Python或Java足以对付这个课程。最后说下课程背景阅读,这里有一些资料,过去几年我对几个话题准备一些比较全面的笔记,课程上所有的话题都包含在内。如果你去我的个人主页,你会发现这些笔记的连接,这些笔记对课程是一个很有用的背景补充。另外,还有一些我推荐的内容:Jurafskyand Martin speech and language processing text book。这个不是必须的,但你想多了解这个课程,看看这些是非常有益的。


    <第二节完>


    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(一):自然语言处理介绍-1

    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(三):语言模型介绍-1

    哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(四):语言模型介绍-2


    展开全文
  • 自然语言处理研究的内容包括但不限于如下分支领域:文本分类、信息抽取、自动摘要、智能问答、话题推荐、机器翻译、主题词识别、知识库构建、深度文本表示、命名实体识别、文本生成、文本分析(词法、句法、语法)、...

    自然语言处理研究的内容包括但不限于如下分支领域:文本分类、信息抽取、自动摘要、智能问答、话题推荐、机器翻译、主题词识别、知识库构建、深度文本表示、命名实体识别、文本生成、文本分析(词法、句法、语法)、语音识别与合成等。下面给出一些分支领域的详细介绍:

    文本分类

    文本分类用计算机设备对文本集(或其他实体或物件)按照一定的分类体系或标准进行自动分类标记。

    定义
    基于分类体系的自动分类
    基于资讯过滤和用户兴趣(Profiles)的自动分类
    所谓分类体系就是针对词的统计来分类
    关键字分类,现在的全文检索
    词的正确切分不易分辨(白痴造句法)
    学习人类对文本分类的知识和策略
    从人对文本和类别之间相关性判断来学习文件用字和标记类别之间的关联

    过程
    文本分类一般包括了文本的表达、 分类器的选择与训练、 分类结果的评价与反馈等过程,其中文本的表达又可细分为文本预处理、索引和统计、特征抽取等步骤。文本分类系统的总体功能模块为:
    (1)预处理:将原始语料格式化为同一格式,便于后续的统一处理;
    (2)索引:将文档分解为基本处理单元,同时降低后续处理的开销;
    (3)统计:词频统计,项(单词、概念)与分类的相关概率;
    (4)特征抽取:从文档中抽取出反映文档主题的特征;
    (5)分类器:分类器的训练;
    (6)评价:分类器的测试结果分析。

    方法
    ※ 词匹配法
    ※ 知识工程
    ※ 统计学习
    ※ 分类算法
    现如今,统计学习方法已经成为了文本分类领域绝对的主流。主要的原因在于其中的很多技术拥有坚实的理论基础(相比之下,知识工程方法中专家的主观因素居多),存在明确的评价标准,以及实际表现良好。统计分类算法将样本数据成功转化为向量表示之后,计算机才算开始真正意义上的“学习”过程。常用的分类算法为:
    决策树,Rocchio,朴素贝叶斯,神经网络,支持向量机,线性最小平方拟合,kNN,遗传算法,最大熵,Generalized Instance Set等。

    基于资讯过滤和用户兴趣(Profiles)的自动分类
    所谓分类体系就是针对词的统计来分类
    关键字分类,现在的全文检索
    词的正确切分不易分辨(白痴造句法)
    学习人类对文本分类的知识和策略
    从人对文本和类别之间相关性判断来学习文件用字和标记类别之间的关联

    信息抽取

    信息抽取(Information Extraction: IE)是把文本里包含的信息进行结构化处理,变成表格一样的组织形式。输入信息抽取系统的是原始文本,输出的是固定格式的信息点。信息点从各种各样的文档中被抽取出来,然后以统一的形式集成在一起。这就是信息抽取的主要任务。信息以统一的形式集成在一起的好处是方便检查和比较。信息抽取技术并不试图全面理解整篇文档,只是对文档中包含相关信息的部分进行分析。至于哪些信息是相关的,那将由系统设计时定下的领域范围而定。

    简介
    信息抽取技术对于从大量的文档中抽取需要的特定事实来说是非常有用的。互联网上就存在着这么一个文档库。在网上,同一主题的信息通常分散存放在不同网站上,表现的形式也各不相同。若能将这些信息收集在一起,用结构化形式储存,那将是有益的。
    由于网上的信息载体主要是文本,所以,信息抽取技术对于那些把因特网当成是知识来源的人来说是至关重要的。信息抽取系统可以看作是把信息从不同文档中转换成数据库记录的系统。因此,成功的信息抽取系统将把互联网变成巨大的数据库!

    挑战
    信息抽取技术是近十年来发展起来的新领域,遇到许多新的挑战。
    信息抽取原来的目标是从自然语言文档中找到特定的信息,是自然语言处理领域特别有用的一个子领域。所开发的信息抽取系统既能处理含有表格信息的结构化文本,又能处理自由式文本(如新闻报道)。IE系统中的关键组成部分是一系列的抽取规则或模式,其作用是确定需要抽取的信息。网上文本信息的大量增加导致这方面的研究得到高度重视。

    纯文本抽出通用程序库
    DMCTextFilter V4.2是HYFsoft推出的纯文本抽出通用程序库,DMCTextFilter可以从各种各样的文档格式的数据中或从插入的OLE对象中,完全除掉特殊控制信息,快速抽出纯文本数据信息。便于用户实现对多种文档数据资源信息进行统一管理,编辑,检索和浏览。
    DMCTextFilter采用了先进的多语言、多平台、多线程的设计理念,支持多国语言(英语,中文简体,中文繁体,日本语,韩国语),多种操作系统(Windows,Solaris,Linux,IBM AIX,Macintosh,HP-UNIX),多种文字集合代码(GBK,GB18030,Big5,ISO-8859-1,KS X 1001,Shift_JIS,WINDOWS31J,EUC-JP,ISO-10646-UCS-2,ISO-10646-UCS-4,UTF-16,UTF-8等)。提供了多种形式的API功能接口(文件格式识别函数,文本抽出函数,文件属性抽出函数,页抽出函数,设定User Password的PDF文件的文本抽出函数等),便于用户方便使用。用户可以十分便利的将本产品组装到自己的应用程序中,进行二次开发。通过调用本产品的提供的API功能接口,实现从多种文档格式的数据中快速抽出纯文本数据。

    文件格式自动识别功能
    本产品通过解析文件内部的信息,自动识别生成文件的应用程序名和其版本号,不依赖于文件的扩展名,能够正确识别文件格式和相应的版本信息。可以识别的文件格式如下:支持Microsoft Office、RTF、PDF、Visio、OutlookEML和MSG、Lotus1-2-3、HTML、AutoCAD DXF和DWG、IGES、PageMaker、ClarisWorks、AppleWorks、XML、WordPerfect、Mac Write、Works、CorelPresentations、QuarkXpress、DocuWorks、WPS、压缩文件的LZH/ZIP/RAR以及一太郎、OASYS等文件格式

    文本抽出功能
    即使系统中没有安装作成文件的应用程序,可以从指定的文件或插入到文件中的OLE中抽出文本数据。

    文件属性抽出功能
    从指定的文件中,抽出文件属性信息。

    页抽出功能
    从文件中,抽出指定页中文本数据。

    对加密的PDF文件文本抽出功能
    从设有打开文档口令密码的PDF文件中抽出文本数据。

    流(Stream)抽出功能
    从指定的文件、或是嵌入到文件中的OLE对象中向流里抽取文本数据。

    支持的语言种类
    本产品支持以下语言:英语,中文简体,中文繁体,日本语,韩国语

    支持的字符集合的种类
    抽出文本时,可以指定以下的字符集合作为文本文件的字符集(也可指定任意特殊字符集,但需要另行定制开发):GBK,GB18030,Big5,ISO-8859-1,KS X 1001,Shift_JIS,WINDOWS31J,EUC-JP,ISO-10646-UCS-2,ISO-10646-UCS-4,UTF-16,UTF-8等。

    自动文本摘要

    自动文本摘要是利用计算机自动地从原始文献中提取文摘,文摘是全面准确地反映某一文献中心内容地简单连贯的短文。常用方法是自动摘要将文本作为句子的线性序列,将句子视为词的线性序列。

    类型
    技术应用类型:
    ·自动提取给定文章的摘要信息
    ·自动计算文章中词的权重
    ·自动计算文章中句子的权重

    提取
    ·单篇文章的摘要自动提取
    ·大规模文档的摘要自动提取
    ·基于分类的摘要自动提取

    智能问答系统

    智能问答系统以一问一答形式,精确的定位网站用户所需要的提问知识,通过与网站用户进行交互,为网站用户提供个性化的信息服务。

    介绍
    智能问答系统是将积累的无序语料信息,进行有序和科学的整理,并建立基于知识的分类模型;这些分类模型可以指导新增加的语料咨询和服务信息,节约人力资源,提高信息处理的自动性,降低网站运行成本。基于对网站多年积累的关于政府和企业的基本情况常见问题及其解答,整理为规范的问答库形式,以支撑各种形式问题的智能问答。方便了用户,提高了办事效率,提升了企业形象。

    应用场景

    相关问答推送
    当网站用户提出问题时,系统不仅将问题答案推送出来,而且会将与这个问题相关的知识也都推送出来供用户查询,这样就做到了一次提问全面掌握所有信息。

    提问智能提示
    用户在提问的过程中, 系统将已经输入的内容自动分析给予优化的补全或相关提示。

    焦点问题自动排行
    对在一定的时间内,用户对知识提问的热度,系统自动聚焦,并按照访问频度将热点知识集中在系统页面上显示;具体类别的知识也按照访问频度排序,在页面知识类别栏目中显示。

    热点词聚焦
    系统对用户提交的业务关键词进行统计,并按照访问的频度进行聚焦,将与关键词相关的业务列表自动链接,形成业务热点关键词。

    在线客服问答
    模拟在线客服人员,以网站智能客服形式完成客服作用。

    引导式交互客服服务
    将常见问题整理成若干流程诊断型的知识,通过引导交互式地服务,尽量从Web端解决客户常见问题。

    客服座席协助
    完成专家坐席功能,在普通坐席人员无法回答问题时提供标准化的知识协助,帮助普通客服人员快速,准确回答。

    转人工客服
    用户可以直接在智能咨询服务系统中连接人工客服人员,向客服人员进行在线咨询。

    话题推荐

    话题推荐只是推荐系统的一个小小的应用分支,下面主要通过介绍推荐系统来了解话题推荐的大致内容。

    背景
    现在社会的信息过载,为了更好的对过载的信息进行有效的过滤。

    推荐系统
    推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。现在的应用领域更为广泛,比如今日头条的新闻推荐,购物平台的商品推荐,直播平台的主播推荐,知乎上的话题推荐等等。

    定义
    推荐系统有3个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。

    常用推荐方法

    基于内容推荐
    基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象的特征,学习用户的兴趣,考察用户资料与待预测项目的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等。基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。

    基于内容推荐方法的优点是:
    1)不需要其它用户的数据,没有冷开始问题和稀疏问题。
    2)能为具有特殊兴趣爱好的用户进行推荐。
    3)能推荐新的或不是很流行的项目,没有新项目问题。
    4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。
    5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。
    缺点是要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。

    基于用户的系统过滤推荐过程
    协同过滤推荐(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后 利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。协同过滤最大优 点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。
    协同过滤是基于这样的假设:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其基本思想非常易于理解,在日常生活中,我们往往会利用好朋友的推荐来进行一些选择。协同过滤正是把这一思想运用到电子商务推荐系统中来,基于其他用户对某一内容的评价来向目标用户进行推荐。
    基于协同过滤的推荐系统可以说是从用户的角度来进行相应推荐的,而且是自动的即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。

    和基于内容的过滤方法相比,协同过滤具有如下的优点:
    1)能够过滤难以进行机器自动内容分析的信息,如艺术品,音乐等。
    2)共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。
    3)有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。这也是协同过滤和基于内容的过滤一个较大的差别,基于内容的过滤推荐很多都是用户本来就熟悉的内容,而协同过滤可以发现用户潜在的但自己尚未发现的兴趣偏好。
    4)能够有效的使用其他相似用户的反馈信息,较少用户的反馈量,加快个性化学习的速度。
    虽然协同过滤作为一种典型的推荐技术有其相当的应用,但协同过滤仍有许多的问题需要解决。最典型的问题有稀疏问题(Sparsity)和可扩展问题(Scalability)。

    基于关联规则推荐
    基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。管理规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集Y,其直观的意义就是用户在购买某些商品的时候有多大倾向去购买另外一些商品。比如购买牛奶的同时很多人会同时购买面包。
    算法的第一步关联规则的发现最为关键且最耗时,是算法的瓶颈,但可以离线进行。其次,商品名称的同义性问题也是关联规则的一个难点。

    基于效用推荐
    基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是怎么样为每一个用户去创建一个效用函数,因此,用户资料模型很大程度上是由系统所采用的效用函数决定的。基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(Product Availability)等考虑到效用计算中。

    基于知识推荐
    基于知识的推荐(Knowledge-based Recommendation)在某种程度是可以看成是一种推理(Inference)技术,它不是建立在用户需要和偏好基础上推荐的。基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识(Functional Knowledge)是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系,所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个更详细的用户需要的表示。

    组合推荐
    由于各种推荐方法都有优缺点,所以在实际中,组合推(HybridRecommendation)经常被采用。研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。尽管从理论上有很多种推荐组合方法,但在某一具体问题中并不见得都有效,组合推荐一个最重要原则就是通过组合后要能避免或弥补各自推荐技术的弱点。

    在组合方式上,有研究人员提出了七种组合思路:
    1)加权(Weight):加权多种推荐技术结果。
    2)变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。
    3)混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考。
    4)特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。
    5)层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐。
    6)特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中。
    7)元级别(Meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。

    体系结构

    服务器端推荐系统
    推荐系统的体系结构研究的重要问题就是用户信息收集和用户描述文件放在什么地方,服务器还是客户机上,或者是处于二者之间的代理服务器上。
    最初的推荐系统都是基于服务器端的推荐系统。在这类推荐系统中,推荐系统与Web服务器一般共享一台硬件设备。在逻辑上,推荐系统要的用户信息收集和建模都依赖于Web服务器。

    由此可知,基于服务器端的推荐系统存在的问题主要包括:
    (1)个性化信息的收集完全由Web服务器来完成,受到了Web服务器功能的限制。
    (2)增加了Web服务器的系统开销。
    (3)对用户的隐私有极大威胁。无论是推荐系统的管理者还是入侵推荐系统的人员都能方便地获取存放在服务器上的用户数据。由于用户的个人数据是有很高价值的,接触到用户数据的部分人会出卖用户数据或把用户数据用于非法用途。

    客户端推荐系统
    基于客户端推荐系统:典型的客户端个性化服务系统有斯坦福大学的LIRA、麻省理工学院的Letizia、加州大学的Syskill&Webert、卡内基·梅隆大学的PersonalWeb-Watcher等。
    基于客户端的推荐系统有如下优点:
    (1)由于用户的信息就在本地收集和处理,因而不但能够获取丰富准确的用户信息以构建高质量的用户模型。
    (2)少量甚至没有用户数据存放在服务器上,Web服务器不能访问和控制用户的数据,能比较好地保护用户的隐私。
    (3)用户更愿意向推荐系统提供个人信息,从而提高推荐系统的推荐性能。因为基于客户端的推荐系统中的用户数据存储在用户本地客户机上,用户对数据能够进行自行控制。
    基于客户端的推荐系统有一定缺点:
    (1)用户描述文件的形成、推荐策略的应用都依赖于所有用户数据分析的基础上进行的,而基于客户端的推荐系统较难获取其他用户的数据,用户描述文件较难得到,协同推荐策略实施也较难,所以推荐系统要重新设计,尤其是推荐策略必须进行修改。
    (2)个性化推荐处理过程中用户的数据资料还需要部分的传给服务器,存在隐私泄漏的危险,需要开发安全传输平台进行数据传输。

    知名团队
    明尼苏达大学GroupLens(John Riedl, Joseph A.Konstan)
    密西根大学(Paul Resnick)
    卡内基梅隆大学(JaimeCallan)
    微软研究院(Ryen W.White)
    纽约大学(Alexander Tuzhilin)
    百分点科技团队(Baifendian)

    机器翻译

    机器翻译又称为自动翻译,是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程。它是计算机语言学的一个分支,是人工智能的终极目标之一,具有重要的科学研究价值。

    基础
    机器翻译技术的发展一直与计算机技术、信息论、语言学等学科的发展紧密相随。从早期的词典匹配,到词典结合语言学专家知识的规则翻译,再到基于语料库的统计机器翻译,随着计算机计算能力的提升和多语言信息的爆发式增长,机器翻译技术逐渐走出象牙塔,开始为普通用户提供实时便捷的翻译服务。

    类别
    ·基于规则的机译系统
    ·基于统计
    ·基于人工神经网络
    ·在线机译

    主题词识别

    主题词识别应该是主题词提取的研究内容,通过对各类文本经过主题模型算法得到文本的主题词,对文本主题词进行分析和识别来实现对基于内容的文本匹配等功能。主要还是基于文本处理的基本方法:TF-IDF的文本表示,向量的文本表示方法,文本分词技术,主题模型等来提取主题词。
    如有理解上的错误请指正,如以后有新的理解会有所改进。

    知识库构建

    知识库是用于指示管理的一种特殊的数据库,以便于有关领域只是的采集、整理以及提取。知识库中的知识源于领域专家它是求解问题所需领域知识的集合,包括基本事实、规则和其它有关信息。
    现有知识库的构建常以本体论作为基础知识。本体论基础知识详见本体论研究综述论文的总结。

    特点
    1)知识库中的知识根据它们的应用领域特征、背景特征(获取时的背景信息)、使用特征、属性特征等而被构成便于利用的、有结构的组织形式。知识片一般是模块化的。
    2)知识库的知识是有层次的。最低层是“事实知识”,中间层是用来控制“事实”的知识(通常用规则、过程等表示);最高层次是“策略”,它以中间层知识为控制对象。策略也常常被认为是规则的规则。因此知识库的基本结构是层次结构,是由其知识本身的特性所确定的。在知识库中,知识片间通常都存在相互依赖关系。规则是最典型、最常用的一种知识片。
    3)知识库中可有一种不只属于某一层次(或者说在任一层次都存在)的特殊形式的知识——可信度(或称信任度,置信测度等)。对某一问题,有关事实、规则和策略都可标以可信度。这样,就形成了增广知识库。在数据库中不存在不确定性度量。因为在数据库的处理中一切都属于“确定型”的。
    4)知识库中还可存在一个通常被称作典型方法库的特殊部分。如果对于某些问题的解决途径是肯定和必然的,就可以把其作为一部分相当肯定的问题解决途径直接存储在典型方法库中。这种宏观的存储将构成知识库的另一部分。在使用这部分时,机器推理将只限于选用典型方法库中的某一层体部分。

    功能
    1.知识库使信息和知识有序化,是知识库对组织的首要贡献。
    2.知识库加快知识和信息的流动,有利于知识共享与交流。
    3.知识库还有利于实现组织的协作与沟通。
    4.知识库可以帮助企业实现对客户知识的有效管理。

    缺陷

    不完整性
    ⒈悬挂条件
    如果该规则的任意前提条件都不出现在数据库中,也不出现在所有规则的结论部分,则该规则永远不会被激活。
    2.无用结论
    如果一个规则结论部分的谓词没有在知识库中任何规则的前提条件中出现,该谓词称为无用条件。
    3.孤立规则
    如果一个规则前提部分的谓词都是悬挂条件,并且其结论部分的谓词都是无用结论,则称该规则为孤立的。

    不一致性
    ⒈冗余规则
    ⒉包含规则
    ⒊循环规则
    ⒋冲突规则

    文本表示

    要使得计算机能高效的处理真实文本,就必须找到一种理想的形式化表示方法,这种表示一方面能真实的反映文档内容(主题、领域或结构等),另一方面也要有对不同文档的区分能力。
    随着对文本处理的要求越来越高,在对文本表示的的形式上的研究也在不断的进步和发展,下面给出一些常用的基于文本内容的表示方法:(以后补充基于行为的表示)

    传统的方法

    (1)one hot encoding
    入门级文本表示方法,应用词袋模型(BOW)+ TF-IDF技术,优点是简单粗暴配合LR效果也不赖,缺点也明显,维度太高且有词义鸿沟问题,不适合大语料。

    (2)主题模型系列
    1)LSA/LSI:将文档为行,词为列,表示成“文档-词”大矩阵,利用SVD(奇异值分解)矩阵分解的实现技术,训练得到词和文档的特征向量,有点儿像推荐里的隐语义模型,模型忽略了语序,更注重主题相关,适合长文本,实际使用效果还不错。
    2)LDA:比较适合长文本表示,不太适合短文本表示。LDA属于一种文档主题生成模型,引用其他博客的话:“LDA认为一篇文档的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的,文档到主题服从多项式分布,主题到词语服从多项式分布”。

    深度表示(NN:神经网络)

    (1)word2vec + TF-IDF加权平均
    虽然word2vec非DNN系列,但其训练词向量效率和效果均表现不俗。首先通过word2vec训练词向量,再通过简单的词加权/关键tag加权/tf-idf加权平均得到文档向量表示。在加权之前做停用词剔除、词聚类等预处理是个不错的选择。(PS:该方法对短文本效果还可以,长文本就不咋地了。kaggle101中的一个word2vec题目的tutorial里作者如是说:他试了一下简单加权和各种加权,不管如何处理,效果还不如01,归其原因作者认为加权的方式丢失了最重要的句子结构信息和词相关信息(也可以说是词序信息),而doc2vec的方法则保存了这种信息。)

    (2)doc2vec
    提到word2vec就不得的不提doc2vec,二者亲兄弟,doc2vec在word2vec基础上增加了个段落向量,能直接训练处(段落)文档向量,在实际使用中,貌似效果一般,特别是长文本NLP相关任务。(PS:gensim有现成的API)。参考:2014 ICML《Distributed Representations of Sentences and Documents》

    (3)WMD
    ICML2015的论文《From Word Embeddings To Document Distances, Kusner, Washington University》新提出一种计算doc相似度的方式,大致思路是将词之间的
    余弦距离作为ground distance,词频作为权重,在权重的约束条件下,求WMD的线性规划最优解。

    (4)glove
    最近学术界兴起了glove的方法,核心思想就是挖掘词语共现信息的内在含义,融合基于全局统计的方法(如LSI/LSA等)和基于局部预测方法(如word2vec等)于一体,貌似效果不错,在词聚类任务上的效果超越了word2vec。PS:《GloVe: Global Vectors forWord Representation》

    命名实体识别

    命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。

    作用
    命名实体识别是信息提取、问答系统、句法分析、机器翻译、面向Semantic Web的元数据标注等应用领域的重要基础工具,在自然语言处理技术走向实用化的过程中占有重要地位。一般来说,命名实体识别的任务就是识别出待处理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。

    过程
    通常包括两部分:(1)实体边界识别;(2) 确定实体类别(人名、地名、机构名或其他)。英语中的命名实体具有比较明显的形式标志(即实体中的每个词的第一个字母要大写),所以实体边界识别相对容易,任务的重点是确定实体的类别。和英语相比,汉语命名实体识别任务更加复杂,而且相对于实体类别标注子任务,实体边界的识别更加困难。

    难点
    (1)汉语文本没有类似英文文本中空格之类的显式标示词的边界标示符,命名实体识别的第一步就是确定词的边界,即分词;
    (2)汉语分词和命名实体识别互相影响;
    (3)除了英语中定义的实体,外国人名译名和地名译名是存在于汉语中的两类特殊实体类型;
    (4)现代汉语文本,尤其是网络汉语文本,常出现中英文交替使用,这时汉语命名实体识别的任务还包括识别其中的英文命名实体;
    (5)不同的命名实体具有不同的内部特征,不可能用一个统一的模型来刻画所有的实体内部特征。

    文本分析

    介绍
    文本分析是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。文本(text),与讯息(message)的意义大致相同,指的是有一定的符号或符码组成的信息结构体,这种结构体可采用不同的表现形态,如语言的、文字的、影像的等等。文本是由特定的人制作的,文本的语义不可避免地会反映人的特定立场、观点、价值和利益。因此,由文本内容分析,可以推断文本提供者的意图和目的。

    特征
    将它们从一个无结构的原始文本转化为结构化的计算机可以识别处理的信息,即对文本进行科学的抽象,建立它的数学模型,用以描述和代替文本。使计算机能够通过对这种模型的计算和操作来实现对文本的识别。由于文本是非结构化的数据,要想从大量的文本中挖掘有用的信息就必须首先将文本转化为可处理的结构化形式。目前人们通常采用向量空间模型来描述文本向量,但是如果直接用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维,那么这个向量的维度将是非常的大。这种未经处理的文本矢量不仅给后续工作带来巨大的计算开销,使整个处理过程的效率非常低下,而且会损害分类、聚类算法的精确性,从而使所得到的结果很难令人满意。因此,必须对文本向量做进一步净化处理,在保证原文含义的基础上,找出对文本特征类别最具代表性的文本特征。为了解决这个问题,最有效的办法就是通过特征选择来降维。

    目前有关文本表示的研究主要集中于文本表示模型的选择和特征词选择算法的选取上。用于表示文本的基本单位通常称为文本的特征或特征项。特征项必须具备一定的特性:
    1)特征项要能够确实标识文本内容;
    2)特征项具有将目标文本与其他文本相区分的能力;
    3)特征项的个数不能太多;
    4)特征项分离要比较容易实现。

    在中文文本中可以采用字、词或短语作为表示文本的特征项。相比较而言,词比字具有更强的表达能力,而词和短语相比,词的切分难度比短语的切分难度小得多。因此,目前大多数中文文本分类系统都采用词作为特征项,称作特征词。这些特征词作为文档的中间表示形式,用来实现文档与文档、文档与用户目标之间的相似度计算 。如果把所有的词都作为特征项,那么特征向量的维数将过于巨大,从而导致计算量太大,在这样的情况下,要完成文本分类几乎是不可能的。特征抽取的主要功能是在不损伤文本核心信息的情况下尽量减少要处理的单词数,以此来降低向量空间维数,从而简化计算,提高文本处理的速度和效率。文本特征选择对文本内容的过滤和分类、聚类处理、自动摘要以及用户兴趣模式发现、知识发现等有关方面的研究都有非常重要的影响。通常根据某个特征评估函数计算各个特征的评分值,然后按评分值对这些特征进行排序,选取若干个评分值最高的作为特征词,这就是特征选择(Feature Selection)。

    特征选取的方式常见的有4种:
    (1)用映射或变换的方法把原始特征变换为较少的新特征。
    (2)从原始特征中挑选出一些最具代表性的特征。
    (3)根据专家的知识挑选最有影响的特征。
    (4)用数学的方法进行选取,找出最具分类信息的特征,这种方法是一种比较精确的方法,人为因素的干扰较少,尤其适合于文本自动分类挖掘系统的应用。
    以后会补充一篇结合《自然语言处理综述》这本书,从词法、句法、语法、语用方面来介绍文本分析。

    句法分析

    句法分析:(Parsing)就是指对句子中的词语语法功能进行分析,比如“我来晚了”,这里“我”是主语,“来”是谓语,“晚了”是补语。

    应用
    句法分析现在主要的应用在于中文信息处理中,如机器翻译等。它是语块分析(chunking)思想的一个直接实现,语块分析通过识别出高层次的结构单元来简化句子的描述。从不同的句子中找到语块规律的一条途径是学习一种语法,这种语法能够解释我们所找到的分块结构。这属于语法归纳的范畴。
    迄今为止,在句法分析领域中存在很多争议,也许你会发现恰巧有人提出了与你正在努力研究的语法归纳程序偶然产生的相似的句法结构,而且这些也可能已经被当成了句法结构模型的证据。但是,这些找到的结构依赖于学习程序中隐含的归纳偏置。这也指明了另外一个方向,我们需要事先知道模型能够找到什么样的结构,同时应该首先确定我们对句子进行句法分析的目的。这里有各种可能的目的:使用句法结构作为语义解释的第一步;识别短语语块,为信息检索系统的索引服务;构建一个概率句法分析器作为一个优于n元语法的语言模型。这些问题的共同目标是构建这样的一个系统:对于任意的句子都能够主产生证明有用的结构,也就是要构建一个句法分析器。

    句法分析的三种不同的途径可以利用概率:
    1、利用概率来确定句子:一种可能的做法是将句法分析器看成是一个词语网络上的语言模型,用来确定什么样的词序列经过网络的时候会获得最大概率。
    2、利用概率来加速语法分析: 第二个目标是利用概率对句法分析器的搜索空间进行排序或剪枝。这使得句法分析器能够在不影响结果质量的情况下尽快找到最优的分析途径。
    3、利用概率选择句法分析结果: 句法分析器可以从输入句子的众多分析结果中选择可能性最大的。

    语音识别技术

    语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。

    简介
    语音识别技术的应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。语音识别技术与其他自然语言处理技术如机器翻译及语音合成技术相结合,可以构建出更加复杂的应用,例如语音到语音的翻译。
    语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。
    语音识别技术和语音合成技术是比较大的两个研究分支,涉及的内容比较多、比较广,在此不做过多的介绍。如有可能,以后补充。

            </div>自然语言处理常见应用领域及研究内容
    
    展开全文
  • 、来源:《中文信息处理发展报告2016》 author:中文信息协会基础研究:词法与句法分析:李正华、陈文亮、张民(苏州大学) 语义分析:周国栋、李军辉(苏州大学) 篇章分析:王厚峰、李素建(北京大学)语言认知...
    来源:《中文信息处理发展报告2016》              author:中文信息协会

    基础研究:
    词法与句法分析:李正华、陈文亮、张民(苏州大学) 
    语义分析:周国栋、李军辉(苏州大学) 
    篇章分析:王厚峰、李素建(北京大学)
    语言认知模型:王少楠,宗成庆(中科院自动化研究所) 
    语言表示与深度学习:黄萱菁、邱锡鹏(复旦大学) 
    知识图谱与计算:李涓子、候磊(清华大学) 
    应用研究:
    文本分类与聚类:涂存超,刘知远(清华大学) 
    信息抽取:孙乐、韩先培(中国科学院软件研究所) 
    情感分析:黄民烈(清华大学) 
    自动文摘:万小军、姚金戈(北京大学) 
    信息检索:刘奕群、马少平(清华大学) 
    信息推荐与过滤:王斌(中科院信工所)鲁骁(国家计算机网络应急中心) 
    自动问答:赵军、刘康,何世柱(中科院自动化研究所) 
    机器翻译:张家俊、宗成庆(中科院自动化研究所) 
    社会媒体处理:刘挺、丁效(哈尔滨工业大学) 
    语音技术:说话人识别——郑方(清华大学)、王仁宇(江苏师范大学)
    语音合成——陶建华(中科院自动化研究所)
    语音识别——王东(清华大学)
    文字识别:刘成林(中科院自动化研究所) 
    多模态信息处理:陈晓鸥(北京大学) 
    医疗健康信息处理:陈清财、汤步洲(哈尔滨工业大学) 
    少数民族语言信息处理:吾守尔•斯拉木(新疆大学)
    展开全文
  • 2018年底最近谷歌发布了基于双向 Transformer 的规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种 NLP 任务,该研究凭借预训练模型刷新了 11 项 NLP 任务的当前最优性能记录。如果这种预训练方式...
  • 百花齐放的UGC,从文字到文字+图片,再到文字+图片+视频+直播,内容多元,形式丰富,并呈现出爆发式增长,然而在“繁荣”的背后,内容的良莠不齐,也给平台带来了极内容审核挑战。 监管部门为了约束内容乱象,...
  • 关于大学计算机相关专业学习路线的见解与分析

    万次阅读 多人点赞 2018-03-18 12:25:27
    当然,关于“最好语言”的争论从来没有休止过,这里要强调一下:语言的选择真的没那么重要,编程语言本身才是要学习的内容,即使你现在学了Java,很有可能将来需要做python的工作,学习语言的过程最重要是语言的机制...
  • “字体要、颜色要鲜艳”,这话听着熟悉吧,在日常开发中,往往因为业务的不同、受众群体的特殊,可能需要我们做出特殊的处理。 今天是对原生AlertDialog做一些大小和颜色的修改。 有两种方案: 1、自定义...
  • 自然语言理解

    千次阅读 2018-08-14 00:44:20
    人类对机器理解语言的认识走了一条弯路。早期的研究集中采用基于规则的方法,虽然解决了一些简单的问题,但是无法从根本上将自然语言理解实用化。直到20多年后,人们开始尝试用基于统计的方法进行自然语言处理,才...
  • 自然语言处理NLP概述

    千次阅读 2018-01-04 21:39:10
    自然语言处理NLP概述 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 自然语言处理(Natural language processing,NLP)是计算机和人类语言之间的关系纽带。更具体地说,自然语言处理是计算机对...
  • 中文自然语言处理入门实战

    万次阅读 多人点赞 2018-07-03 02:45:10
    本达人课,作为中文自然语言处理边学边实战的入门级教程,以小数据量的“简易版”实例,通过实战带大家快速掌握 NLP 在中文方面开发的基本能力。 本课程共包含 18 节。各小节之间并没有紧密耦合,但是整个内容还是...
  • 导读:自然语言处理(Natural Language Processing,NLP)技术是与自然语言的计算机处理有关的所有技术的统称,其目的是使计算机能够理解和接受人类用自然语言输入的指...
  • 自然语言处理十大应用

    千次阅读 2020-07-16 12:56:14
    自然语言处理是数据科学领域最热门的课题之一。公司在这一领域投入大量资金进行研究。每个人都在努力了解自然语言处理及其应用,并以此为生。 你知道为什么吗? 因为仅仅在短短几年的时间里,自然语言处理已经...
  • 关于《道法自然》一书中的“依赖倒置”问题

    千次阅读 热门讨论 2004-10-27 14:51:00
    《道法自然》一书问世后,有不少热心读者发来邮件探讨相关的技术问题。...感觉写得非常好,正如李维先生的评价一样,内容丰富,汇集并组织大量的面向对象知识,并且以一个实践项目为主线将这些知识有机的组织,
  • 自然语言处理中的Attention Model:是什么及为什么

    万次阅读 多人点赞 2016-01-20 18:26:02
    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/    author: 张俊林     (想更系统地学习深度学习知识?请参考:深度学习枕边书) ...要是关注深度学习在自然...
  • 自然语言处理面试基础

    千次阅读 2020-01-01 23:30:03
    内容新: 本课程涵盖 RNN,LSTM,GRU,word2vec,CNN 这些基础,还包括多层,双向等拓展,有 Seq2seq 和 Attention,再到最近流行的 Transformer,ELMo,BERT,层层递进掌握经典模型。 实战多: 包括 14 个项目的...
  • [NLP自然语言处理]谷歌BERT模型深度解析

    万次阅读 多人点赞 2018-10-15 17:49:18
    任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料...
  • 自然语言处理中的N-Gram模型详解

    万次阅读 多人点赞 2016-04-29 21:32:23
    N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理。另外一方面,N-Gram的另外一个作用是用来评估两个字符串之间...
  • author:张俊林  /*可以转载,转载请标明作者及...如果看不清图片,请转到:放弃幻想,全面拥抱Transformer:自然语言处理三特征抽取器(CNN/RNN/TF)比较   在辞旧迎新的时刻,大家都在忙着回顾过去一年的成...
  • 对,是区块链,然而,目前区块链主要的内容集中在币圈,可能做金融的同学比较关注和喜欢,但是在一般电商、行业互联网中,我们刚刚经历了大数据、ML、DL的洗礼,这些技术很多还没有完全铺展开来,所以,基于这点,在...
  • 自然语言处理】浅谈语料库

    万次阅读 多人点赞 2018-11-05 10:19:29
    文章目录【自然语言处理】浅谈语料库前言一、浅谈语料库1、语料和语料库2、语料库语言学3、 建议语料库的意义二、语料库深入了解1、语料库划分与种类2、语料库构建原则3、语料标注的优缺点三、自然语言处理工具包:...
  • 自然语言处理入门读物

    千次阅读 2016-12-13 19:23:31
    自然语言处理入门读物本文目前研二,已经接触自然语言处理有一年的时间(半路出家),下面写一点自己关于自然语言处理的心得(纯属个人见解),先从入门学习开始写吧。书籍-理论篇书籍是人类进步的阶梯,这个一点不...
  • 自然辩证法习题解析第一章第二章第三章第四章 第一章 《自然辩证法》一书是:(1/1分) ③ ①马克思、恩格斯共同完成的著作 ②恩格斯经过十年努力完成的著作; ③恩格斯未完成的遗稿; ④马克思撰写;恩格斯整理...
  • NPL自然语言处理

    千次阅读 2019-09-08 14:34:24
    自然语言处理(natural language processing,NLP)也称自然语言理解(natural language understanding,NLU),从人工智能研发的一开始,它就作为这一学科的重要研究内容探索人类理解自然语言这一智能行为的基本...
  • 自然辩证法

    千次阅读 2019-05-09 22:39:18
    4. 生态自然观与生态文明建设 生态自然观概念: 生态自然观是以现代科学技术为基础,概括和总结生态自然界的存在和发展规律形成的总的观点。是马克思主义自然观发展的当代形态之一。 生态自然观主要观点: 生态自然...
  • 每周荐书:OpenCV、自然语言、SpringBoot2

    万次阅读 多人点赞 2017-11-09 16:44:28
    每周荐书:OpenCV、自然语言处理、Spring Boot 2精髓(评论送书) 感谢大家对荐书栏目的支持,先公布下上期活动中奖名单 高可用架构(第1卷)lukang423Crett 解忧程序员——高薪编程、求职面试与成长转型宝典bit_...
  • 自然语言处理是人工智能的类别之一。自然语言处理主要有那些功能?我们以百度AI为例 从上述的例子可以看到,自然语言处理最基本的功能是词法分析,词法分析的功能主要有: 分词分句 词语标注 词法时态(适用...
  • NLP系列(1)_从破译外星人文字浅谈自然语言处理基础

    万次阅读 多人点赞 2016-01-19 16:30:11
    本文主要是讲了一些自然语言处理的浅层内容。知识点比较零碎,可见业务场景之繁杂。我们希望从机器学习算法的角度去观察这些业务场景,以便有个清晰的认识。文本处理的一些基础内容,如正则表达式、分词断句等是自然...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 560,443
精华内容 224,177
关键字:

关于大自然的内容