CN108108350A - 名词识别方法及装置 - Google Patents
名词识别方法及装置 Download PDFInfo
- Publication number
- CN108108350A CN108108350A CN201711226499.8A CN201711226499A CN108108350A CN 108108350 A CN108108350 A CN 108108350A CN 201711226499 A CN201711226499 A CN 201711226499A CN 108108350 A CN108108350 A CN 108108350A
- Authority
- CN
- China
- Prior art keywords
- word
- noun
- sentence
- speech
- thesaurus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本公开是关于一种名词识别方法及装置,属于语言处理领域,该方法包括:基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;向预设名词库添加所述至少一个候选名词,得到第一名词库;基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;从所述第一名词库中删除所述至少一个非名词,得到第二名词库;当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。本公开提高了识别名词的准确性。
Description
技术领域
本公开是关于语言处理领域,具体来说是关于一种名词识别方法及装置。
背景技术
随着语言处理技术的发展,在语义分析、聊天机器人等各种应用场景中,经常需要从句子中识别出名词,以便后续根据名词进一步地分析和处理。
相关技术提供了可以确定词性标识的NLP(Natural Language Processing,自然语言处理)工具,NLP工具包括pattern、TextBlob(文本处理工具)或NLTK (NaturalLanguage Toolkit,自然语言处理工具包)等。终端可以采用任一种NLP 工具,对句子进行解析,得到句子中每个单词的词性标识,当词性标识指示名词时,确定单词为名词。
发明内容
本公开提供了一种名词识别方法及装置,可以解决相关技术中识别名词准确性差的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种名词识别方法,所述方法包括:
基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
向预设名词库添加所述至少一个候选名词,得到第一名词库;
基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;
从所述第一名词库中删除所述至少一个非名词,得到第二名词库;
当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。
本实施例提供的方法,通过结合多种语言处理工具的特性,基于第一语言处理工具获取第一句子中的候选名词,基于至少一个第二语言工具获取第一句子中的非名词,得到包括候选名词、预设名词库且不包括非名词的第二名词库,第二名词库可以作为校验第一句子中任一单词是否为正确名词的标准,能够保证识别到的名词不会遗漏句子的名词,较为全面,还能够保证不会误将句子中的非名词识别为名词,从而提高了识别名词的准确性。
在一种可能的设计中,所述基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词,包括以下至少一项:
基于pattern,获取所述第一句子中的过去分词、动名词、现在分词中的至少一项;
基于文本处理工具TextBlob的Tags指令,获取所述第一句子中的非第三人称单数形式的动词;
基于TextBlob的Parse指令,获取所述第一句子中的动词原形;
基于自然语言处理工具包NLTK,获取所述第一句子中的第三人称单数形式的动词。
在一种可能的设计中,所述基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词,包括:
基于pattern,获取所述第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
在一种可能的设计中,所述向预设名词库添加所述至少一个候选名词,得到第一名词库之后,所述方法还包括:
当所述第一句子中任一单词的最后一个字母为s,且所述单词的词性标识不为预设名词类词性标识,且所述单词在所述第一句子中的上一个单词的词性标识为预设名词类词性标识时,将所述单词作为非名词。
在一种可能的设计中,所述基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词之前,所述方法还包括:
获取词库和词性标识信息,所述词库包括同一语种的多个单词,所述词性标识信息包括所述多个单词中每个单词的至少一个词性标识;
对于所述词库中的每个单词,当所述单词在所述词性标识信息中词性标识指示名词时,将所述单词添加至所述预设名词库中。
在一种可能的设计中,所述对于所述词库中的每个单词,当所述单词在所述词性标识信息中词性标识指示名词时,将所述单词添加至所述预设名词库中,包括:
当所述单词在所述词性标识信息中应用频率最高的词性标识指示名词时,将所述单词添加至所述预设名词库中。
根据本公开实施例的第二方面,提供了一种名词识别装置,所述装置包括:
获取模块,用于基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
添加模块,用于向预设名词库添加所述至少一个候选名词,得到第一名词库;
所述获取模块,还用于基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;
删除模块,用于从所述第一名词库中删除所述至少一个非名词,得到第二名词库;
确定模块,用于当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。
在一种可能的设计中,所述获取模块,还用于执行以下至少一项:
基于pattern,获取所述第一句子中的过去分词、动名词、现在分词中的至少一项;
基于文本处理工具TextBlob的Tags指令,获取所述第一句子中的非第三人称单数形式的动词;
基于TextBlob的Parse指令,获取所述第一句子中的动词原形;
基于自然语言处理工具包NLTK,获取所述第一句子中的第三人称单数形式的动词。
在一种可能的设计中,所述获取模块,还用于基于pattern,获取所述第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
在一种可能的设计中,所述确定模块,还用于当所述第一句子中任一单词的最后一个字母为s,且所述单词的词性标识不为预设名词类词性标识,且所述单词在所述第一句子中的上一个单词的词性标识为预设名词类词性标识时,将所述单词作为非名词。
在一种可能的设计中,所述获取模块,还用于获取词库和词性标识信息,所述词库包括同一语种的多个单词,所述词性标识信息包括所述多个单词中每个单词的至少一个词性标识;
所述添加模块,还用于当所述单词在所述词性标识信息中词性标识指示名词时,将所述单词添加至所述预设名词库中。
在一种可能的设计中,所述添加模块,还用于对于所述词库中的每个单词,当所述单词在所述词性标识信息中应用频率最高的词性标识指示名词时,将所述单词添加至所述预设名词库中。
根据本公开实施例的第三方面,提供了一种名词识别装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
向预设名词库添加所述至少一个候选名词,得到第一名词库;
基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;
从所述第一名词库中删除所述至少一个非名词,得到第二名词库;
当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。
根据本公开实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面以及第一方面的任一种可能设计中的名词识别方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种名词识别方法的流程图;
图2是根据一示例性实施例示出的一种名词识别方法的流程图;
图3是根据一示例性实施例示出的一种名词识别装置的框图;
图4是根据一示例性实施例示出的一种名词识别装置的框图;
图5是根据一示例性实施例示出的一种名词识别装置的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
在本文中提及的“和/或”,用来描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了方便理解,下面对本公开实施例中涉及的概念进行解释:
词性标识:用于指示对应单词的词性,词性标识可以如下表1所示:
表1
词性 | 词性标识 | 举例 |
单数形式的普通名词 | NN | woman、wheelchair |
复数形式的普通名词 | NNS | women、gifts |
单数形式的专有名词 | NNP | Russia、christmas |
复数形式的专有名词 | NNPS | olympics |
过去分词 | VBN | blow |
动名词或现在分词 | VBG | drying |
非第三人称单数形式的动词 | VBP | ski |
动词原形 | VB | stand |
第三人称单数形式的动词 | VBZ | skates |
预设名词库:包括同一语种的词库中词性标识指示名词的单词,考虑到任一单词可能具有至少一种词性,对应至少一个词性标识,预设名词库可以包括词库中应用频率最高的词性标识指示名词的多个单词,预设名词库可以表示为列表NNListAll。
第一句子:待识别的原始句子,可以根据图片生成,可以表示为变量sentencefrstr。
第二句子:从第一句子中删除预设非具象名词后得到的句子。
第一名词库:向预设名词库中添加了第一句子中的候选名词所得到的词库,包括预设名词库以及第一句子中词性标识为预设名词类词性标识的每个单词,可以表示为列表NNList。
第二名词库:从第一名词库中删除了第一句子中的非名词所得到的词库,包括属于第一名词库且不属于至少一个非名词的每个单词。第二名词库可以作为识别句子中的单词是否为正确名词的标准,即,当句子中的任一单词属于第二名词库时,可以确定该单词为正确名词。
语言处理工具:包括pattern、TextBlob、NLTK等多种类型,通常具有词性批注、中文分词、语法检查,拼写纠错、情感分析等各种语义分析的功能。
预设名词类词性标识:指示名词,可以包括单数形式的普通名词的词性标识、复数形式的普通名词的词性标识、单数形式的专有名词的词性标识、复数形式的专有名词的词性标识中的至少一个,基于上述表1的举例,预设名词类词性标识可以包括NN、NNS、NNP、NNPS中的至少一个。
候选名词:第一句子中词性标识为预设名词类词性标识的单词,是句子中的名词的概率较大。
非名词:第一句子中词性标识为非名词的词性标识的单词,不是句子中的名词,非名词可以包括过去分词、动名词、现在分词、非第三人称单数形式的动词、动词原形、第三人称单数形式的动词中的至少一个。
第一语言处理工具:确定候选名词时所采用的语言处理工具,可以将多种语言处理工具中识别预设名词类词性标识最准确的语言处理工具作为第一语言处理工具。例如,可以将pattern、TextBlob和NLTK中识别NN、NNS、NNP、 NNPS最准确的pattern作为第一语言处理工具。
第二语言处理工具:确定非名词时所采用的语言处理工具,可以将多种语言处理工具中识别非名词最准确的语言处理工具作为第二语言处理工具。例如,可以将识别VBN最准确的pattern作为识别过去分词的第二语言处理工具,可以将识别VBG最准确的pattern作为识别动名词或现在分词的第二语言处理工具,可以将识别VBP最准确的TextBlob的Tags指令作为识别非第三人称单数形式的动词的第二语言处理工具,可以将识别VB最准确的TextBlob的Parse指令作为识别动词原形的第二语言处理工具,可以将识别VBZ最准确的NLTK作为识别第三人称单数形式的动词的第二语言处理工具。
图1是根据一示例性实施例示出的一种名词识别方法的流程图,如图1所示,包括以下步骤:
在步骤101中,基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词。
在步骤102中,向预设名词库添加该至少一个候选名词,得到第一名词库。
在步骤103中,基于至少一个第二语言处理工具,获取该第一句子中的至少一个非名词。
在步骤104中,从该第一名词库中删除该至少一个非名词,得到第二名词库。
在步骤105中,当该第一句子中的任一单词属于该第二名词库时,确定该单词为该第一句子中的正确名词。
本实施例提供的方法,通过结合多种语言处理工具的特性,基于第一语言处理工具获取第一句子中的候选名词,基于至少一个第二语言工具获取第一句子中的非名词,得到包括候选名词、预设名词库且不包括非名词的第二名词库,第二名词库可以作为校验第一句子中任一单词是否为正确名词的标准,能够保证识别到的名词不会遗漏句子的名词,较为全面,还能够保证不会误将句子中的非名词识别为名词,从而提高了识别名词的准确性。
在一种可能的设计中,该基于至少一个第二语言处理工具,获取该第一句子中的至少一个非名词,包括以下至少一项:
基于pattern,获取该第一句子中的过去分词、动名词或者现在分词;
基于文本处理工具TextBlob的Tags指令,获取该第一句子中的非第三人称单数形式的动词;
基于TextBlob的Parse指令,获取该第一句子中的动词原形;
基于自然语言处理工具包NLTK,获取该第一句子中的第三人称单数形式的动词。
在一种可能的设计中,该基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词,包括:
基于pattern,获取该第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
在一种可能的设计中,该向预设名词库添加该至少一个候选名词,得到第一名词库之后,该方法还包括:
当该第一句子中任一单词的最后一个字母为s,且该单词的词性标识不为预设名词类词性标识,且该单词在该第一句子中的上一个单词的词性标识为预设名词类词性标识时,将该单词作为非名词。
在一种可能的设计中,该基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词之前,该方法还包括:
获取词库和词性标识信息,该词库包括同一语种的多个单词,该词性标识信息包括该多个单词中每个单词的至少一个词性标识;
对于该词库中的每个单词,当该单词在该词性标识信息中词性标识指示名词时,将该单词添加至该预设名词库中。
在一种可能的设计中,该对于该词库中的每个单词,当该单词在该词性标识信息中词性标识指示名词时,将该单词添加至该预设名词库中,包括:
对于该词库中的每个单词,当该单词在该词性标识信息中应用频率最高的词性标识指示名词时,将该单词添加至该预设名词库中。
图2是根据一示例性实施例示出的一种名词识别方法的流程图,如图2所示,该方法用于电子设备中,包括以下步骤:
在步骤201中,电子设备创建预设名词库。
由于仅根据语言处理工具对句子进行解析来识别名词时,可能会出现遗漏名词的情况,本实施例中电子设备会创建预设名词库,预设名词库包括多个名词,后续结合预设名词库和句子本身进行名词识别,可以保证最终识别的名词更加全面。其中,电子设备可以为终端,例如电脑、手机、平板电脑等。该电子设备也可以为服务器,例如可以是一台服务器、若干台服务器组成的服务器集群或云计算中心。
创建预设名词库的过程具体可以包括以下步骤A1和步骤A2:
步骤A1、电子设备获取词库和词性标识信息。
词库包括同一语种的多个单词,可以为该语种的所有单词。词性标识信息可以用于存储词库中单词的词性标识,包括词库中每个单词的至少一个词性标识,词性标识用于指示对应单词的词性,不同词性的词性标识不同。
针对获取词库和词性标识信息的过程,电子设备可以从词典应用的安装包中获取词库和词性标识信息,或者从服务器下载词库和词性标识信息,或者获取另一电子设备发送的词库和词性标识信息,或者获取用户导入的词库和词性标识信息,当然电子设备也可以通过其他方式得到词库和词性标识信息。
其中,关于从词典应用的安装包中获取词库和词性标识信息的过程,电子设备可以获取词典应用的安装包,解压安装包后,生成指定目录,从指定目录中获取词库和词性标识信息,该指定目录用于存储词典应用的词库和词性标识信息,可以为assets/ec文件夹。
为了从指定目录中识别出词库和词性标识信息,电子设备可以确定第一预设后缀名和第二预设后缀名,从指定目录中搜索后缀名为第一预设后缀名的文件,将搜索结果作为词库,从指定目录中搜索后缀名为第二预设后缀名的文件,将搜索结果作为词性标识信息。其中,该第一预设后缀名用于指示词库,可以为.lix,该第二预设后缀名用于指示词性标识信息,可以为.dix。
步骤A2、电子设备根据词库和词性标识信息,获取词库中在词性标识信息中词性标识指示名词的多个单词,作为预设名词库。
对于词库中的每个单词,电子设备可以获取该单词在词库标识信息中的至少一个词性标识,当该至少一个词性标识中的任一个词性标识指示名词时,将该单词作为预设名词库中的单词。其中,该预设名词库可以表示为一个列表,可以定义为变量NNListAll。
进一步地,为了提高准确性,电子设备可以当单词在词性标识信息中的应用频率最高的词性标识指示名词时,将该单词添加至预设名词库中。那么,若某个单词不仅具有名词的词性标识,还具有其他类型的词性标识,而该单词在生活中经常应用的词性不是名词时,该单词不会被添加至预设名词库中,保证预设名词库中所包括的单词都是经常用于表示名词的单词。
针对确定单词在词性标识信息中应用频率最高的词性标识的方式,在一种可能的实现方式中,词性标识信息中每个单词的至少一个词性标识可以按照应用频率从高到低的顺序排序,则对于任一单词来说,电子设备可以获取该单词的至少一个词性标识中排在第一位的词性标识,作为该单词应用频率最高的词性标识,也即是,当单词在词性标识信息中排在第一位的词性标识指示名词时,电子设备可以将该单词添加至预设名词库中。
针对生成预设名词库的具体过程,电子设备可以创建一个空的预设名词库,遍历词库,对于当前遍历到的单词,读取该单词在词性标识信息中的第一个词性标识,当该第一个词性标识指示名词时,将该单词添加至预设名词库中,并继续遍历下一个单词,当遍历完成最后一个单词时,得到预设名词库。
需要说明的是,由于单词的数量众多,指定目录可以包括多个词库和多个词性标识信息,大量单词分散存储于不同词库中,大量词性标识分散存储于不同词性标识信息中。为了确定某一个单词的词性标识存储于哪一个词性标识信息中,对于同一单词来说,由于存储该单词的词库和存储该单词的词性标识信息的词性标识信息的前缀名通常相同,当电子设备读取前缀名为a的词库中的每个单词时,可以从前缀名为a的词性标识信息读取相应单词的词性标识。
另外,词性标识信息不仅可以包括词性标识,还可以包括音标、词义等其他信息,为了区分不同种类的信息,每种信息可以采用不同的符号进行标记,电子设备可以预先确定词性标识对应的符号,根据该符号从词性标识信息中找到词性标识。其中,词性标识对应的符号可以为^。
举例来说,词库45.lix的第一个单词为guitar,词性标识信息45.dix可以如下所示,其中^标记的n和i为guitar的词性标识,由于第一个词性标识为n,是名词的词性标识,因此电子设备会添加guitar至预设名词库中。
+
$110000
^n
\吉他;六弦琴
^i
\弹吉他
:guitarring|guitars|guitarred|guitarred|guitars
+
在步骤202中,电子设备获取待识别的第一句子。
本实施例以需要识别名词的原始句子称为第一句子进行说明,第一句子的获取方式可以根据实际的场景确定。例如,当应用于对图片进行分类、基于图片进行检索的场景中,电子设备可以通过用户输入的图片生成待识别的第一句子。当应用于智能问答、智能翻译场景中,电子设备可以将用户输入的句子作为待识别的第一句子。
在步骤203中,电子设备基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词,向预设名词库添加至少一个候选名词,得到第一名词库。
本步骤203具体可以包括以下步骤B1-步骤B3:
步骤B1、电子设备将预设名词库添加至第一名词库中。
电子设备可以创建空的第一名词库,再将预设名词库中的所有单词均添加至名词库中。以预设名词库定义为变量NNListAll,第一名词库定义为变量 NNList为例,添加过程的代码可以如下所示:
for wordInNNListAll in NNListAll:
NNList.append(wordInNNListAll);
需要说明的是,电子设备也可以不将预设名词库添加至第一名词库中,而是直接将预设名词库作为待添加候选名词的第一名词库,即在预设名词库的基础上添加候选名词。
步骤B2、对第一句子进行格式处理。
电子设备获取到的第一句子可能会包括起始标签、终止标签和句号,这些符号对于生成第一名词库的过程来说为多余符号,为了避免多余符号造成的干扰,电子设备可以预先从第一句子删除起始标签和终止标签、终止标签和句号中的至少一种。其中,该起始标签可以为<S>、终止标签可以为</S>,该句号可以为“.”或“。”。
以格式处理前的第一句子定义为变量sentencefrstrori,格式处理后的第一句子定义为变量sentencefrstr为例,对第一句子进行格式处理的代码可以如下:
sentencefrstr=sentencefrstrori.replace("<S>","").replace("</S>","").replace("."," ").replace("..","").strip();
格式处理前的第一句子和格式处理后的第一句子可以分别如下所示:
sentencefrstrori="<S>living room with wood floor tv couches andchair. </S>"
sentencefrstr="living room with wood floor tv couches and chair"。
需要说明的是,本步骤B2为可选步骤,在实际应用中,当获取到的第一句子不包括起始标签、终止标签或句号时,电子设备可以直接根据第一句子执行以下步骤B3。另外,本步骤B2仅是以删除起始标签、终止标签或句号为例进行说明,对于起始标签、终止标签和句号以外的任意符号,当该符号对识别句子的过程可能会造成干扰时,电子设备同样可以在对第一句子进行格式处理的过程中,删除该符号。
步骤B3、电子设备基于第一语言处理工具,获取第一句子中的至少一个候选名词,将该至少一个候选名词添加至第一名词库中。
候选名词是指属于第一句子且词性标识为预设名词类词性标识的单词,该候选名词很可能是第一句子中的名词。预设名词类词性标识用于指示名词,例如,预设名词类词性标识可以包括单数形式的普通名词的词性标识、复数形式的普通名词的词性标识、单数形式的专有名词的词性标识、复数形式的专有名词的词性标识中的至少一个。可选地,基于上述表1,预设名词类词性标识可以相应的包括NN、NNS、NNP、NNPS中的至少一个,该NN可用于指示名词,该NNS可以用于指示名词复数,该NNP可以用于指示专有名词,该NNPS可以用于指示专有名词复数。
关于获取候选名词的具体过程,电子设备可以通过第一语言处理工具,对第一句子进行解析,得到第一句子中每个单词的词性标识,对于第一句子中的每个单词,当单词的词性标识为预设名词类词性标识时,将该单词作为候选名词,从而得到第一句子中词性标识为预设名词类词性标识的至少一个候选名词。其中,针对获取词性标识的过程,电子设备可以运行第一语言处理工具,对第一句子执行词性批注指令,得到词性识别结果,从词性识别结果中获取单词的词性标识,该词性标识批注结果包括句子中的每个单词和对应的词性标识。
针对该第一语言处理工具,其可以为多种语言处理工具中的任一种语言处理工具,该多种语言处理工具可以包括pattern、TextBlob和NLTK中的至少一个。进一步地,为了提高准确性,可以将多种语言处理工具中识别预设名词类词性标识指示的单词最准确的语言处理工具作为第一语言处理工具。其中,通过对现有的语言处理工具进行大量实验发现,相对于其他语言处理工具来说, pattern确定预设名词类词性标识最准确,则可以将pattern作为第一语言处理工具,即基于pattern,获取第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
示例性地,以待识别的句子定义为变量sentencefrstr,词性识别结果定义为变量parsesentencestr为例,词性批注指令可以如下所示:
parsesentencestr=parse(sentencefrstr,relations=True,lemmata=True)
示例性地,第一句子和词性识别结果可以分别如下所示,词性识别结果中的每一行包含一个单词的词性标识。
sentencefrstr="an elderly woman in a wheelchair opening christmasgifts"
parsesentencestr="an/DT/B-NP/O/O/an
elderly/JJ/I-NP/O/O/elderly
woman/NN/I-NP/O/O/woman
in/IN/B-PP/B-PNP/O/in
a/DT/B-NP/I-PNP/NP-SBJ-1/a
wheelchair/NN/I-NP/I-PNP/NP-SBJ-1/wheelchair
opening/VBG/B-VP/I-PNP/VP-1/open
christmas/NNP/B-NP/I-PNP/NP-OBJ-1/christmas
gifts/NNS/I-NP/I-PNP/NP-OBJ-1/gift"
通过上述词性识别结果(parsesentencestr),可以确定第一句子(sentencefrstr) 中每个单词的词性标识分别为DT、JJ、NN、IN、DT、NN、VBG、NNP、NNS。其中,属于(NN、NNS、NNP、NNPS)的单词分别为woman(词性标识为NN)、 wheelchair(词性标识为NN)、christmas(词性标识为NNP)、gifts(词性标识为NNS),则向第一名词库中添加woman、wheelchair、christmas、gifts。
示例性地,第一句子和词性识别结果可以分别如下所示:
sentencefrstr="three male skiers compete in the vancouver olympics"
parsesentencestr="three/CD/B-NP/O/NP-SBJ-1/three
male/JJS/I-NP/O/NP-SBJ-1/male
skiers/NNS/I-NP/O/NP-SBJ-1/skier
compete/VB/B-VP/O/VP-1/compete
in/IN/B-PP/B-PNP/O/in
the/DT/B-NP/I-PNP/O/the
vancouver/JJS/I-NP/I-PNP/O/vancouver
olympics/NNPS/I-NP/I-PNP/O/olympics"
通过上述词性识别结果(parsesentencestr),可以确定第一句子(sentencefrstr) 中每个单词的词性标识分别为CD、JJS、NNS、VB、IN、DT、JJS、NNPS。其中,属于(NN、NNS、NNP、NNPS)的单词分别为skiers(词性标识为NNS)、 olympics(词性标识为NNPS),则向名词库中添加skiers、olympics。
需要说明的是,上述仅是以电子设备执行步骤B1-步骤B2-步骤B3的顺序生成第一名词库为例,本实际应用中,电子设备也可以按照步骤B2-步骤B3-步骤B1的顺序生成第一名词库,即,先向第一名词库中添加至少一个候选名词,再向第一名词库中添加预设名词库。当然,电子设备也可以在得到至少一个候选名词后,将该至少一个候选名词和预设名词库同时添加至第一名词库中。本实施例只要求第一名词库包括至少一个候选名词和预设名词库即可,对添加的顺序和时机不做限定。
在步骤204中,电子设备基于至少一个第二语言处理工具,获取第一句子中的至少一个非名词,从第一名词库中删除至少一个非名词,得到第二名词库。
由于第一语言处理工具识别的单词的词性标识可能并不准确,可能误将句子中的非名词识别为名词,导致电子设备误将非名词添加至第一名词库中。因此,电子设备会基于至少一个第二语言处理工具,获取至少一个非名词,从第一名词库删除这些非名词,得到的第二名词库不包括非名词,相对于第一名词库来说更加准确。其中,非名词包括第一句子中的过去分词、动名词、现在分词、非第三人称单数形式的动词、动词原形、第三人称单数形式的动词中的至少一个。
针对生成第二名词库的具体过程,电子设备可以分别采用至少一个第二语言处理工具中的每个第二语言处理工具,对第一句子进行解析,得到第一句子中每个单词的词性标识,再获取第一句子中词性标识为非名词的词性标识的至少一个单词,作为至少一个非名词,对于至少一个非名词中的任一非名词,当第一名词库包括非名词时,从第一名词库中删除非名词,最终将不包括至少一个非名词的第一名词库作为第二名词库。
针对该至少一个第二语言处理工具,通过对现有的语言处理工具进行大量实验发现,发现每种语言处理工具具有自己的特性,某一种语言工具可能识别某种词性标识指示的单词比其他语言处理工具更准确,而识别另一种词性标识指示的单词则比其他语言处理工具准确性差。例如,pattern识别识别名词、过去分词、现在分词和动名词最准确,TextBlob的Tags指令识别非第三人称单数形式的动词最准确,TextBlob的Parse指令识别动词原形最准确,NLTK识别第三人称单数形式的动词最准确。
结合该规律,可以将至少一种第二语言处理工具的优势结合起来,采用每种语言处理工具负责识别其最擅长的词性标识(即该语言处理工具识别最准确的词性标识),进而对第一名词库进行多次过滤,保证最终得到准确的第二名词库。
生成第二名词库的过程具体可以包括以下步骤C1-步骤C6的至少一项:
步骤C1、基于pattern,获取第一句子中过去分词,从第一名词库中删除过去分词。
电子设备可以判断第一句子中是否包括过去分词,当第一句子中包括过去分词时,将第一句子中的过去分词确定为非名词,当第一名词库包括该非名词时,从第一名词库中删除该非名词。
其中,针对确定第一句子中是否包括过去分词的方式,电子设备可以预先确定过去分词的词性标识,通过pattern获取第一句子中每个单词的词性标识,当某个单词的词性标识为过去分词的词性标识时,将该单词确定为非名词。基于上述表1的举例,过去分词的词性标识可以为VBN。示例性地,电子设备可以采用pattern对第一句子执行Parse指令,得到第一句子的词性识别结果,从词性识别结果中获取词性标识为VBN的单词,作为过去分词。
本步骤C1中,由于pattern为多种语言处理工具中识别过去分词最准确的语言处理工具,电子设备通过采用pattern作为第二语言处理工具,识别出第一句子中的过去分词,能够保证识别到的过去分词较为准确。当然,电子设备也可以将其他识别过去分词准确性高的语言处理工具作为识别过去分词所采用的第二语言分词工具,对此不做限定。
举例来说,第一句子可以定义为变量sentencefrstr,词性识别结果可以定义为变量parsesentencestr,第一句子以及pattern对句子计算得到的词性识别结果可以分别如下所示:
sentencefrstr="a woman with a red shirt is blow drying her hair";
parsesentencestr="a/DT/B-NP/O/O/a
woman/NN/I-NP/O/O/woman
with/IN/B-PP/B-PNP/O/with
a/DT/B-NP/I-PNP/NP-SBJ-1/a
red/JJ/I-NP/I-PNP/NP-SBJ-1/red
shirt/NN/I-NP/I-PNP/NP-SBJ-1/shirt
is/VBZ/B-VP/O/VP-1/be
blow/VBN/I-VP/O/VP-1/blow
drying/VBG/I-VP/O/VP-1/dry
her/DT/B-NP/O/NP-OBJ-1/her
hair/NN/I-NP/O/NP-OBJ-1/hair";
在该句子(sentencefrstr)中每个单词的词性标识分别为DT、NN、IN、DT、 JJ、NN、VBZ、VBN、VBG、DT、NN,其中,单词blow为过去分词,词性标识为VBN,则电子设备会将blow作为非名词,当第一名词库包括blow时,从第一名词库中删除blow。
步骤C2、基于pattern,获取第一句子中的动名词或现在分词,从第一名词库中删除动名词或现在分词。
电子设备可以判断第一句子中是否包括动名词,当第一句子中包括动名词时,将第一句子中的动名词确定为非名词,当第一名词库也包括该非名词时,从第一名词库中删除该非名词。同理地,电子设备可以判断第一句子中是否包括现在分词,当第一句子中包括现在分词时,将第一句子中的现在分词确定为非名词,当第一名词库也包括该非名词时,从第一名词库中删除该非名词。
其中,针对确定第一句子中是否包括动名词或现在分词的方式,电子设备可以预先确定动名词或现在分词的词性标识,通过pattern获取第一句子中每个单词的词性标识,当某个单词的词性标识为动名词或现在分词的词性标识时,将该单词确定为非名词。其中,基于上述表1的举例,动名词或现在分词的词性标识可以为VBG。示例性地,电子设备可以采用pattern对第一句子执行Parse 指令,得到第一句子的词性识别结果,从词性识别结果中获取词性标识为VBG 的单词,作为动名词或现在分词。
本步骤C2中,由于pattern为多种语言处理工具中识别动名词或现在分词最准确的语言处理工具,电子设备通过采用pattern作为第二语言处理工具,识别出第一句子中的动名词或现在分词,能够保证识别到的动名词或现在分词较为准确。当然,电子设备也可以通过其他识别动名词或现在分词准确性高的语言处理工具识别动名词或现在分词,对此不做限定。
举例来说,第一句子可以定义为变量sentencefrstr,词性识别结果可以定义为变量parsesentencestr,第一句子以及pattern对句子计算得到的词性识别结果可以分别如下所示:
sentencefrstr="a woman with a red shirt is blow drying her hair";
parsesentencestr="a/DT/B-NP/O/O/a
woman/NN/I-NP/O/O/woman
with/IN/B-PP/B-PNP/O/with
a/DT/B-NP/I-PNP/NP-SBJ-1/a
red/JJ/I-NP/I-PNP/NP-SBJ-1/red
shirt/NN/I-NP/I-PNP/NP-SBJ-1/shirt
is/VBZ/B-VP/O/VP-1/be
blow/VBN/I-VP/O/VP-1/blow
drying/VBG/I-VP/O/VP-1/dry
her/DT/B-NP/O/NP-OBJ-1/her
hair/NN/I-NP/O/NP-OBJ-1/hair";
在该句子(sentencefrstr)中每个单词的词性标识分别为DT、NN、IN、DT、 JJ、NN、VBZ、VBN、VBG、DT、NN,其中,单词drying为现在分词,词性标识为VBG,电子设备会将drying作为非名词,当第一名词库包括drying时,从第一名词库中删除drying。
步骤C3、基于TextBlob的Tags指令,获取第一句子中的非第三人称单数形式的动词,从第一名词库中删除非第三人称单数形式的动词。
电子设备可以判断第一句子中是否包括非第三人称单数形式的动词,当第一句子中包括非第三人称单数形式的动词时,将第一句子中的非第三人称单数形式的动词确定为非名词,当第一名词库也包括该非名词时,从第一名词库中删除该非名词。
其中,针对确定第一句子中是否包括非第三人称单数形式的动词的方式,电子设备可以预先确定非第三人称单数形式的动词的词性标识,基于TextBlob 的Tags指令获取第一句子中每个单词的词性标识,当某个单词的词性标识为非第三人称单数形式的动词的词性标识时,将该单词确定为非名词。基于上述表1 的举例,非第三人称单数形式的动词的词性标识可以为VBP。示例性地,电子设备可以采用TextBlob,对第一句子执行Tags指令,得到第一句子的词性识别结果,从词性识别结果中获取词性标识为VBP的单词,作为非第三人称单数形式的动词。
本步骤C3中,由于TextBlob为多种语言处理工具中识别非第三人称单数形式的动词最准确的语言处理工具,而TextBlob提供的Tags指令又比TextBlob提供的其他指令来讲识别非第三人称单数形式的动词更准确,电子设备通过 TextBlob,执行Tags指令,识别出第一句子中的非第三人称单数形式的动词,能够保证识别到的非第三人称单数形式的动词较为准确。当然,电子设备也可以通过其他识别非第三人称单数形式的动词准确性高的语言处理工具以及指令来识别非第三人称单数形式的动词,对此不做限定。
其中,执行TextBlob的Tags指令的代码块具体可以如下所示:
TextBlobTmpFr=TextBlob(sentencefrstr);
TextBlobTags=TextBlobTmpFr.tags;
举例来说,第一句子可以定义为变量sentencefrstr,词性识别结果可以定义为变量parsesentencestr,第一句子以及TextBlob提供的Tags指令对句子计算得到的词性识别结果可以分别如下所示:
sentencefrstr="three skiing people ski over the snow in the woods"
TextBlobTags="[('three',u'CD'),('skiing',u'VBG'),('people',u'NNS'),('ski', u'VBP'),('over',u'IN'),('the',u'DT'),('snow',u'NN'),('in',u'IN'),('the',u'DT'), ('woods',u'NNS')]";
在该第一句子(sentencefrstr)中每个单词的词性标识分别为CD、VBG、 NNS、VBP、IN、DT、NN、IN、DT、NNS,其中,单词ski为非第三人称单数形式的动词,词性标识为VBP,电子设备会将ski作为非名词,当第一名词库包括ski时,从第一名词库中删除ski。
步骤C4、电子设备基于TextBlob的Parse指令,获取第一句子中的动词原形,从第一名词库删除动词原形。
电子设备可以判断第一句子中是否包括动词原形,当第一句子中包括动词原形时,将第一句子中的动词原形确定为非名词,当第一名词库也包括该非名词时,从第一名词库中删除该非名词。
其中,针对确定第一句子中是否包括动词原形的方式,电子设备可以预先确定动词原形的词性标识,基于TextBlob的Parse指令,获取第一句子中每个单词的词性标识,当某个单词的词性标识为动词原形的词性标识时,将该单词确定为非名词。基于上述表1的举例,动词原形的词性标识可以为VB。示例性地,电子设备可以采用TextBlob,对第一句子执行Parse指令,得到第一句子的词性识别结果,从词性识别结果中获取词性标识为VB的单词,作为动词原形。
本步骤C4中,由于TextBlob为多种语言处理工具中识别动词原形最准确的语言处理工具,而TextBlob提供的Parse指令又比TextBlob提供的其他指令来讲识别动词原形更准确,电子设备通过TextBlob,执行Parse指令,识别出第一句子中的动词原形,能够保证识别到的动词原形较为准确。当然,电子设备也可以通过其他识别动词原形准确性高的语言处理工具以及指令来识别动词原形,对此不做限定。
以第一句子定义为变量sentencefrstr为例,执行TextBlob的Parse指令的代码块具体可以如下所示:
TextBlobTmpFr=TextBlob(sentencefrstr);
TextBlobParse=TextBlobTmpFr.parse();
以词性识别结果定义为变量parsesentencestr为例,第一句子以及TextBlob 提供的Parse指令对第一句子计算得到的词性识别结果可以分别如下所示:
sentencefrstr="a single giraffe stand among some busy trees"
TextBlobParse="a/DT/B-NP/O
single/JJ/I-NP/O
giraffe/NN/I-NP/Ostand/VB/B-VP/O
among/IN/B-PP/B-PNP
some/DT/B-NP/I-PNP
busy/JJ/I-NP/I-PNP
trees/NNS/I-NP/I-PNP"
在该第一句子(sentencefrstr)中每个单词的词性标识分别为DT、JJ、NN、 VB、IN、DT、JJ、NNS,其中,单词stand为动词原形,词性标识为VB,电子设备会将stand作为非名词,当第一名词库包括stand时,从第一名词库中删除 stand。
步骤C5、电子设备基于NLTK,获取第一句子中的第三人称单数形式的动词,从第一名词库中删除第三人称单数形式的动词。
电子设备可以判断第一句子中是否包括第三人称单数形式的动词,当第一句子中包括第三人称单数形式的动词时,将第一句子中的第三人称单数形式的动词确定为非名词,当第一名词库也包括该非名词时,从第一名词库中删除该非名词。
其中,针对确定第一句子中是否包括第三人称单数形式的动词的方式,电子设备可以预先确定第三人称单数形式的动词的词性标识,基于NLTK,获取第一句子中每个单词的词性标识,当某个单词的词性标识为第三人称单数形式的动词的词性标识时,将该单词确定为非名词。基于上述表1的举例,第三人称单数形式的动词的词性标识可以为VBZ。示例性地,电子设备可以采用NLTK,对第一句子执行word_tokenize指令,得到第一句子的词性识别结果,从词性识别结果中获取词性标识为VBZ的单词,作为第三人称单数形式的动词。
本步骤C5中,由于NLTK为多种语言处理工具中识别第三人称单数形式的动词最准确的语言处理工具,电子设备通过NLTK识别出第一句子中的第三人称单数形式的动词,能够保证识别到的第三人称单数形式的动词较为准确。当然,电子设备也可以通过其他识别第三人称单数形式的动词准确性高的语言处理工具以及指令来识别第三人称单数形式的动词,对此不做限定。
以第一句子定义为变量sentencefrstr为例,执行NLTK的word_tokenize指令的代码块具体可以如下所示:
textNltk=word_tokenize(sentencefrstr);
textNltkList=nltk.pos_tag(textNltk);
以词性识别结果定义为变量textNltkList为例,第一句子以及NLTK对句子计算得到的词性识别结果可以分别如下所示:
sentencefrstr="a young girl wearing a helmet skates on askateboard";
textNltkList="[('a','DT'),('young','JJ'),('girl','NN'),('wearing','VBG'),('a', 'DT'),('helmet','NN'),('skates','VBZ'),('on','IN'),('a','DT'),('skateboard','NN')]";
在该句子(sentencefrstr)中每个单词的词性标识分别为DT、JJ、NN、VBG、 DT、NN、VBZ、IN、DT、NN,其中,单词skates为第三人称单数形式的动词,词性标识为VBZ,电子设备会将skates作为非名词,当第一名词库包括skates时,从第一名词库中删除skates。
步骤C6、当第一句子中任一单词的最后一个字母为s,且单词的词性标识不为预设名词类词性标识,且单词在第一句子中的上一个单词的词性标识为预设名词类词性标识时,电子设备将该单词作为非名词,从第一名词库中删除该单词。
本步骤C6为从第一名词库中删除第三人称单数形式的动词的另一种方式,经过对生活中第三人称单数形式的动词在句子中出现的规律进行归纳总结,发现第三人称单数形式的动词通常以s为结尾,而且上一个单词通常会充当第三人称单数形式的动词的主语,是一个名词。为此,设置了以下识别条件来确定第三单词:单词的最后一个字母为s,且词性标识不为预设名词类词性标识,且单词的上一个单词的词性标识为预设名词类词性标识,当句子中的任一单词符合该识别条件时,将该单词确定第三人称单数形式的动词,从该第一名词库删除该单词。
其中,本步骤C6中每个单词的词性标识可以由上述过程中基于pattern对第一句子进行词性识别时得到。
示例性的,以第一句子定义为变量sentencefrstr,词性识别结果定义为变量parsesentencestr,各种词性标识如上表1所示,第一句子以及pattern对句子解析得到的词性识别结果可以分别如下所示:
sentencefrstr="a woman stands on a street corner in the city"
parsesentencestr="a/DT/B-NP/O/O/a
woman/NN/I-NP/O/O/woman
stands/DT/O/O/O/stands
on/IN/B-PP/B-PNP/O/on
a/DT/B-NP/I-PNP/O/a
street/NN/I-NP/I-PNP/O/street
corner/RBR/B-ADVP/O/O/corner
in/IN/B-PP/B-PNP/O/in
the/DT/B-NP/I-PNP/O/the
city/NN/I-NP/I-PNP/O/city"
在该句子(sentencefrstr)中每个单词的词性标识分别为DT、NN、DT、IN、DT、NN、RBR、IN、DT、NN,其中,单词stands为第三人称单数形式的动词, stands的最后一个字母为s,词性标识为DT,不属于(NN、NNS、NNP、NNPS),上一个单词woman的词性标识为NN,属于(NN、NNS、NNP、NNPS),电子设备会从第一名词库中删除stands。
需要说明的第一点是,考虑到名词库中可能出现某一个单词重复出现的情况,为了避免出现当名词库中重复出现某个非名词,而只删除了其中的某一个非名词的情况,在上述步骤C1-步骤C6中的各个步骤中,当确定了非名词时,电子设备可以遍历第一名词库中的每个单词,当单词为非名词时,则从第一名词库中删除单词,并继续遍历下一个单词,直到遍历到第一名词库中最后一个单词为止,从而保证彻底地从第一名词库中删除非名词。
进一步地,通过遍历第一名词库来删除非名词的过程可以封装为删除指令,电子设备可以向删除指令传入非名词,当执行删除指令时,遍历第一名词库的每个单词,判断当前每个单词是否为非名词,从而从第一名词库中彻底删除非名词。其中,删除指令可以定义为指令removefList,removefList的代码块可以如下所示,当要执行删除指令来删除非名词时,可以将非名词作为要传入的变量ele,第一名词库作为要传入的变量List。
需要说明的第二点是,上述步骤C1-步骤C6可以采用任意结合的方式形成生成第二名词库的方式,电子设备可以执行上述步骤C1-步骤C6中的任一个或多个,并且可以按照任意先后顺序执行上述步骤C1-步骤C6,本实施例对此不做限定。
需要说明的第三点是,在上述步骤C1-步骤C6中,当电子设备需要基于某个语言处理工具解析得到的词性标识来确定待删除的单词时,若之前已经基于该语言处理工具对第一句子解析过,则无需重复地再次对第一句子进行解析,直接根据之前解析得到的词性识别结果确定待删除的单词即可。例如,当步骤203采用pattern作为第一语言处理工具,解析得到第一句子中每个单词的单词标识后,步骤C1、步骤C2和步骤C6无需再次用pattern对第一句子进行解析,直接采用步骤203中pattern得到的词性识别结果即可。可选地,当电子设备采用任意语言处理工具对第一句子解析后,可以存储词性识别结果,以便后续可以随时从已存储的词性识别结果中调用某个单词的词性标识。
在步骤205中,当第一句子中的任一单词属于第二名词库时,电子设备确定单词为第一句子中的正确名词。
当得到第二名词库后,可以将第二名词库作为验证句子中的任一单词是否为正确名词的标准,即,当句子中任一单词属于第二名词库时,确定该单词为第一句子中的正确名词,当句子中任一单词不属于第二名词库时,确定该单词不为第一句子中的正确名词。
需要说明的第一点是,本实施例提供的预设名词库、第一名词库和第二名词库可以为数据库,也可以为列表、数组或其他类型的存储对象。
需要说明的第二点是,本实施例提供的名词识别方法可应用于从英文句子中识别名词,也可以应用于从其他语种的句子中识别名词。
本实施例提供的方法,通过结合多种语言处理工具的特性,基于第一语言处理工具获取第一句子中的候选名词,基于至少一个第二语言工具获取第一句子中的非名词,得到包括候选名词、预设名词库且不包括非名词的第二名词库,第二名词库可以作为校验第一句子中任一单词是否为正确名词的标准,能够保证识别到的名词不会遗漏句子的名词,较为全面,还能够保证不会误将句子中的非名词识别为名词,从而提高了识别名词的准确性。
以下将用4个例子直观地展示本实施例提供的名词识别方法的实验结果:对4个句子分别采用相关技术提供的名词识别方法和本实施例提供的名词识别方法进行了实验,两种方案的实验结果进行对比,可以充分地体现出本实施例极大地提高了识别名词的全面性和准确性。
为了便于分析实验结果,引入了两个指标:第一召回率和第一准确率,第一召回率为句子中非人工识别的正确的名词个数与句子中人工识别的名词个数之间的比值,第一召回率可以用来评估相应方案中识别名词的全面性,第一准确率为句子中非人工识别的正确的名词个数与句子中非人工识别的名词个数之间的比值,第一准确率可以用来评估相应方案中识别名词的准确性。
例1、句子:"<S>an old tv monitor sits in the middle of a stream.</S>"
人工识别出的名词(正确名词):tv,monitor,middle,stream
相关技术中,以pattern为例,对该句子进行解析后,得到的词性识别结果如下:
an/DT/B-NP/O/NP-SBJ-1/an
old/JJ/I-NP/O/NP-SBJ-1/old
tv/NN/I-NP/O/NP-SBJ-1/tv
monitor/RBS/B-VP/O/VP-1/monitor
sits/VBZ/I-VP/O/VP-1/sit
in/IN/B-PP/O/O/in
the/DT/O/O/O/the
middle/JJS/B-ADJP/O/O/middle
of/IN/B-PP/B-PNP/O/of
a/DT/B-NP/I-PNP/O/a
stream/NN/I-NP/I-PNP/O/stream
得到名词为:'tv,stream',与人工识别出的名词对比可知,正确的名词即为为:'tv,stream',正确的个数为:2,Pattern识别该句子的第一召回率为2/4=0.5,其中遗漏了单词monitor和middle。
而采用本实施例提供的方法,从该句子中识别出的名词为 'tv,monitor,middle,stream',均为正确名词,第一召回率为4/4=1。其中,由于 monitor和middle属于预设名词库,会被补全到第一名词库中,因此得到的第二名词库没有遗漏这个单词。
例2、句子:"<S>there are skateboards leaning on a metal bar.</S>"
人工识别出的名词(正确名词):skateboards,metal,bar
相关技术中,以pattern为例,对该句子进行解析后,得到的词性识别结果如下:
there/DT/O/O/O/there
are/VBP/B-VP/O/VP-1/be
skateboards/NNS/B-NP/O/NP-OBJ-1*NP-SBJ-2/skateboard
leaning/VBG/B-VP/O/VP-2/lean
on/IN/B-PP/B-PNP/O/on
a/DT/B-NP/I-PNP/O/a
metal/NN/I-NP/I-PNP/O/metal
bar/JJS/B-ADJP/O/O/bar
得到名词为:'skateboards,metal',与人工识别出的名词对比可知,正确的名词即为'skateboards,metal',正确的个数为:2,Pattern识别该句子的第一召回率为 2/3=0.6667,其中遗漏了单词bar。
而采用本实施例提供的方法,从该句子中识别出的名词为 skateboards,metal,bar,均为正确名词,第一召回率为4/4=1。其中,由于bar属于预设名词库,会被补全到第一名词库中,因此得到的第二名词库没有遗漏这个单词。
例3、句子:"<S>various pastries are displayed in a take out box.</S>"
人工识别出的名词(正确名词):'pastries,box';
相关技术中,以pattern为例,对该句子进行解析后,得到的词性识别结果如下:
various/JJ/B-NP/O/NP-SBJ-1/various
pastries/NNS/I-NP/O/NP-SBJ-1/pastry
are/VBP/B-VP/O/VP-1/be
displayed/VBN/I-VP/O/VP-1/display
in/IN/B-PP/B-PNP/O/in
a/DT/B-NP/I-PNP/O/a
take/NN/I-NP/I-PNP/O/take
out/IN/B-PP/B-PNP/O/out
box/NN/B-NP/I-PNP/O/box
得到名词为:'pastries,take,box',与人工识别出的名词对比可知,正确的名词即为'pastries,box',正确的个数为:2,Pattern识别该句子的第一准确率为2/3=0.6667,其中错误地将take识别为名词。
而采用本实施例提供的方法,从该句子中识别出的名词为'pastries,box',均为正确名词,第一准确率为2/2=1。其中,由于采用TextBlob的Parse指令对句子进行词性分析时,得到take的词性标识为VB,会将take作为非名词,从第一名词库中过滤掉,因此第二名词库并没有包括这个单词,也就不会误将这个单词识别为名词。
例4、句子:"<S>a skier jumps into the sky at night.</S>"
人工识别出的名词(正确名词):'skier,sky,night';
相关技术中,以pattern为例,对该句子进行解析后,得到的词性识别结果如下:
a/DT/B-NP/O/O/a
skier/NN/I-NP/O/O/skier
jumps/NNS/I-NP/O/O/jump
into/IN/B-PP/B-PNP/O/into
the/DT/B-NP/I-PNP/O/the
sky/NN/I-NP/I-PNP/O/sky
at/IN/B-PP/B-PNP/O/at
night/NN/B-NP/I-PNP/O/night
得到名词为:'skier,jumps,sky,night',与人工识别出的名词对比可知,正确的名词即为'skier,sky,night',正确的个数为:3,Pattern识别该句子的第一准确率为 3/4=0.75。其中错误地将jumps识别为名词。
而采用本实施例提供的方法,从该句子中识别出的名词为:'skier,sky,night',均为正确的名词,第一准确率为3/3=1。其中,由于采用NLTK对句子进行词性分析时,得到jumps的词性标识为VBZ,会将jumps作为非名词,从第一名词库中过滤掉,因此第二名词库并没有包括这个单词,也就不会误将这个单词识别为名词。
图3是根据一示例性实施例示出的一种名词识别装置的框图。参见图3,该装置包括获取模块301,添加模块302、删除模块303和确定模块304。
获取模块301,用于基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
添加模块302,用于向预设名词库添加该至少一个候选名词,得到第一名词库;
该获取模块301,还用于基于至少一个第二语言处理工具,获取该第一句子中的至少一个非名词;
删除模块303,用于从该第一名词库中删除该至少一个非名词,得到第二名词库;
确定模块304,用于当该第一句子中的任一单词属于该第二名词库时,确定该单词为该第一句子中的正确名词。
本实施例提供的装置,通过结合多种语言处理工具的特性,基于第一语言处理工具获取第一句子中的候选名词,基于至少一个第二语言工具获取第一句子中的非名词,得到包括候选名词、预设名词库且不包括非名词的第二名词库,第二名词库可以作为校验第一句子中任一单词是否为正确名词的标准,能够保证识别到的名词不会遗漏句子的名词,较为全面,还能够保证不会误将句子中的非名词识别为名词,从而提高了识别名词的准确性。
在一种可能的设计中,该获取模块301,还用于执行以下至少一项:
基于pattern,获取该第一句子中的过去分词、动名词或者现在分词;
基于文本处理工具TextBlob的Tags指令,获取该第一句子中的非第三人称单数形式的动词;
基于TextBlob的Parse指令,获取该第一句子中的动词原形;
基于自然语言处理工具包NLTK,获取该第一句子中的第三人称单数形式的动词。
在一种可能的设计中,该获取模块301,还用于基于pattern,获取该第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
在一种可能的设计中,该确定模块304,还用于当该第一句子中任一单词的最后一个字母为s,且该单词的词性标识不为预设名词类词性标识,且该单词在该第一句子中的上一个单词的词性标识为预设名词类词性标识时,将该单词作为非名词。
在一种可能的设计中,该获取模块301,还用于获取词库和词性标识信息,该词库包括同一语种的多个单词,该词性标识信息包括该多个单词中每个单词的至少一个词性标识;
该添加模块302,还用于对于该词库中的每个单词,当该单词在该词性标识信息中词性标识指示名词时,将该单词添加至该预设名词库中。
在一种可能的设计中,该添加模块302,还用于对于该词库中的每个单词,当该单词在该词性标识信息中应用频率最高的词性标识指示名词时,将该单词添加至该预设名词库中。
图4是根据一示例性实施例示出的一种名词识别装置400的框图。例如,装置400可以是移动电话,计算机,数字广播装置,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器 404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/O)的接口 412,传感器组件414,以及通信组件416。
处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件 402之间的交互。
存储器404被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为装置400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电力相关联的组件。
多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件 410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到装置400的打开/关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414 可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述名词识别方法。
图5是根据一示例性实施例示出的一种名词识别装置500的框图。例如,装置500可以被提供为一服务器。参照图5,装置500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理组件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述名词识别方法。
在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理器执行时实现上述实施例中的名词识别方法。例如,计算机可读存储介质可以是只读内存 (ROM)、随机存取存储器(RAM)、只读光盘(CD-ROM)、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种名词识别方法,其特征在于,所述方法包括:
基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
向预设名词库添加所述至少一个候选名词,得到第一名词库;
基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;
从所述第一名词库中删除所述至少一个非名词,得到第二名词库;
当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。
2.根据权利要求1所述的方法,其特征在于,所述基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词,包括以下至少一项:
基于pattern,获取所述第一句子中的过去分词、动名词、现在分词中的至少一项;
基于文本处理工具TextBlob的Tags指令,获取所述第一句子中的非第三人称单数形式的动词;
基于TextBlob的Parse指令,获取所述第一句子中的动词原形;
基于自然语言处理工具包NLTK,获取所述第一句子中的第三人称单数形式的动词。
3.根据权利要求1所述的方法,其特征在于,所述基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词,包括:
基于pattern,获取所述第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
4.根据权利要求1所述的方法,其特征在于,所述向预设名词库添加所述至少一个候选名词,得到第一名词库之后,所述方法还包括:
当所述第一句子中任一单词的最后一个字母为s,且所述单词的词性标识不为预设名词类词性标识,且所述单词在所述第一句子中的上一个单词的词性标识为预设名词类词性标识时,将所述单词作为非名词。
5.根据权利要求1所述的方法,其特征在于,所述基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词之前,所述方法还包括:
获取词库和词性标识信息,所述词库包括同一语种的多个单词,所述词性标识信息包括所述多个单词中每个单词的至少一个词性标识;
对于所述词库中的每个单词,当所述单词在所述词性标识信息中词性标识指示名词时,将所述单词添加至所述预设名词库中。
6.根据权利要求5所述的方法,其特征在于,所述当所述单词在所述词性标识信息中词性标识指示名词时,将所述单词添加至所述预设名词库中,包括:
当所述单词在所述词性标识信息中应用频率最高的词性标识指示名词时,将所述单词添加至所述预设名词库中。
7.一种名词识别装置,其特征在于,所述装置包括:
获取模块,用于基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
添加模块,用于向预设名词库添加所述至少一个候选名词,得到第一名词库;
所述获取模块,还用于基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;
删除模块,用于从所述第一名词库中删除所述至少一个非名词,得到第二名词库;
确定模块,用于当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。
8.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于执行以下至少一项:
基于pattern,获取所述第一句子中的过去分词、动名词、现在分词中的至少一项;
基于文本处理工具TextBlob的Tags指令,获取所述第一句子中的非第三人称单数形式的动词;
基于TextBlob的Parse指令,获取所述第一句子中的动词原形;
基于自然语言处理工具包NLTK,获取所述第一句子中的第三人称单数形式的动词。
9.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于基于pattern,获取所述第一句子中词性标识为预设名词类词性标识的至少一个单词,作为至少一个候选名词。
10.根据权利要求7所述的装置,其特征在于,所述确定模块,还用于当所述第一句子中任一单词的最后一个字母为s,且所述单词的词性标识不为预设名词类词性标识,且所述单词在所述第一句子中的上一个单词的词性标识为预设名词类词性标识时,将所述单词作为非名词。
11.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于获取词库和词性标识信息,所述词库包括同一语种的多个单词,所述词性标识信息包括所述多个单词中每个单词的至少一个词性标识;
所述添加模块,还用于对于所述词库中的每个单词,当所述单词在所述词性标识信息中词性标识指示名词时,将所述单词添加至所述预设名词库中。
12.根据权利要求11所述的装置,其特征在于,所述添加模块,还用于当所述单词在所述词性标识信息中应用频率最高的词性标识指示名词时,将所述单词添加至所述预设名词库中。
13.一种名词识别装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
基于第一语言处理工具,获取待识别的第一句子中的至少一个候选名词;
向预设名词库添加所述至少一个候选名词,得到第一名词库;
基于至少一个第二语言处理工具,获取所述第一句子中的至少一个非名词;
从所述第一名词库中删除所述至少一个非名词,得到第二名词库;
当所述第一句子中的任一单词属于所述第二名词库时,确定所述单词为所述第一句子中的正确名词。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711226499.8A CN108108350B (zh) | 2017-11-29 | 2017-11-29 | 名词识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711226499.8A CN108108350B (zh) | 2017-11-29 | 2017-11-29 | 名词识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108350A true CN108108350A (zh) | 2018-06-01 |
CN108108350B CN108108350B (zh) | 2021-09-14 |
Family
ID=62208715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711226499.8A Active CN108108350B (zh) | 2017-11-29 | 2017-11-29 | 名词识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108350B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109147146A (zh) * | 2018-08-21 | 2019-01-04 | 平安科技(深圳)有限公司 | 语音取号的方法及终端设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073548A1 (en) * | 2002-10-09 | 2004-04-15 | Myung-Eun Lim | System and method of extracting event sentences from documents |
CN102073527A (zh) * | 2011-01-26 | 2011-05-25 | 百度在线网络技术(北京)有限公司 | 一种输入法词库的升级方法和装置 |
US20130262088A1 (en) * | 2012-03-30 | 2013-10-03 | International Business Machines Corporation | Computer-Implemented Method, Program, and System for Identifying Non-Self-Descriptive Terms in Electronic Documents |
CN104679885A (zh) * | 2015-03-17 | 2015-06-03 | 北京理工大学 | 一种基于语义特征模型的用户搜索串机构名识别方法 |
CN104731923A (zh) * | 2015-03-26 | 2015-06-24 | 无锡中科泛在信息技术研发中心有限公司 | 互联网商品评论挖掘本体词库的构建方法 |
CN105095179A (zh) * | 2014-05-14 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 对用户评价进行处理的方法及装置 |
CN107291700A (zh) * | 2017-07-17 | 2017-10-24 | 广州特道信息科技有限公司 | 实体词识别方法及装置 |
CN107330011A (zh) * | 2017-06-14 | 2017-11-07 | 北京神州泰岳软件股份有限公司 | 多策略融合的命名实体的识别方法及装置 |
-
2017
- 2017-11-29 CN CN201711226499.8A patent/CN108108350B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073548A1 (en) * | 2002-10-09 | 2004-04-15 | Myung-Eun Lim | System and method of extracting event sentences from documents |
CN102073527A (zh) * | 2011-01-26 | 2011-05-25 | 百度在线网络技术(北京)有限公司 | 一种输入法词库的升级方法和装置 |
US20130262088A1 (en) * | 2012-03-30 | 2013-10-03 | International Business Machines Corporation | Computer-Implemented Method, Program, and System for Identifying Non-Self-Descriptive Terms in Electronic Documents |
CN105095179A (zh) * | 2014-05-14 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 对用户评价进行处理的方法及装置 |
CN104679885A (zh) * | 2015-03-17 | 2015-06-03 | 北京理工大学 | 一种基于语义特征模型的用户搜索串机构名识别方法 |
CN104731923A (zh) * | 2015-03-26 | 2015-06-24 | 无锡中科泛在信息技术研发中心有限公司 | 互联网商品评论挖掘本体词库的构建方法 |
CN107330011A (zh) * | 2017-06-14 | 2017-11-07 | 北京神州泰岳软件股份有限公司 | 多策略融合的命名实体的识别方法及装置 |
CN107291700A (zh) * | 2017-07-17 | 2017-10-24 | 广州特道信息科技有限公司 | 实体词识别方法及装置 |
Non-Patent Citations (1)
Title |
---|
张五辈 等: "一种中医名词术语自动抽取方法", 《沈阳航空航天大学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109147146A (zh) * | 2018-08-21 | 2019-01-04 | 平安科技(深圳)有限公司 | 语音取号的方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108108350B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110381388B (zh) | 一种基于人工智能的字幕生成方法和装置 | |
CN109522419B (zh) | 会话信息补全方法及装置 | |
CN106933561A (zh) | 语音输入方法和终端设备 | |
CN107291690A (zh) | 标点添加方法和装置、用于标点添加的装置 | |
CN105100366A (zh) | 骚扰电话号码确定方法、装置和系统 | |
CN110147467A (zh) | 一种文本描述的生成方法、装置、移动终端及存储介质 | |
CN108008832A (zh) | 一种输入方法和装置、一种用于输入的装置 | |
CN108509412A (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN107564526A (zh) | 处理方法、装置和机器可读介质 | |
EP3734472A1 (en) | Method and device for text processing | |
CN111832315B (zh) | 语义识别的方法、装置、电子设备和存储介质 | |
CN109710732A (zh) | 信息查询方法、装置、存储介质和电子设备 | |
CN111984180B (zh) | 终端读屏方法、装置、设备及计算机可读存储介质 | |
CN107424612A (zh) | 处理方法、装置和机器可读介质 | |
CN111444695A (zh) | 基于人工智能的文本生成方法、装置、设备及存储介质 | |
CN110930969A (zh) | 背景音乐的确定方法及相关设备 | |
CN109002184A (zh) | 一种输入法候选词的联想方法和装置 | |
CN112133295B (zh) | 语音识别方法、装置及存储介质 | |
CN116166843B (zh) | 基于细粒度感知的文本视频跨模态检索方法和装置 | |
CN108108350A (zh) | 名词识别方法及装置 | |
CN108628461A (zh) | 一种输入方法和装置、一种更新词库的方法和装置 | |
CN104216617B (zh) | 光标位置确定方法和装置 | |
CN104699668B (zh) | 确定词语相似度的方法及装置 | |
CN108831473B (zh) | 一种音频处理方法及装置 | |
KR101411039B1 (ko) | 음성인식을 이용한 발음 평가 방법 및 이를 적용한 전자기기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |