CN110709830A - 解析程序、解析方法以及解析装置 - Google Patents
解析程序、解析方法以及解析装置 Download PDFInfo
- Publication number
- CN110709830A CN110709830A CN201880032030.7A CN201880032030A CN110709830A CN 110709830 A CN110709830 A CN 110709830A CN 201880032030 A CN201880032030 A CN 201880032030A CN 110709830 A CN110709830 A CN 110709830A
- Authority
- CN
- China
- Prior art keywords
- bitmap
- index
- character
- data
- dictionary
- 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
Images
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/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/268—Morphological analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/53—Processing of non-Latin text
Abstract
解析装置(100)基于用于词素解析的词典生成索引,上述索引是与登记于词典的各个词素有关的索引,并且在上述索引中设定有能够对登记于词典的各个词素判别前端和末尾的标志。解析装置(100)使用索引,来从所输入的字符数据中提取多个能够拆分的单词。
Description
技术领域
本发明涉及解析程序等。
背景技术
以往,与以空格等分隔符进行分隔的字母表记的字符不同,对于CJK(中文、日文、韩文)字符,要在识别词素的分隔之后,进行各种处理。例如,作为根据对象字符数据解析词素的分隔并输出能够拆分的单词的字符串的现有技术,有Mecab、Chasen等词素词典和Trie树(前缀树)及Double Array(双数组)。
作为利用词素的分隔的解析结果的技术,有将对象字符数据矢量化的Word2Vec等技术。
专利文献1:日本特开2010-146273号公报
专利文献2:日本特开平10-222511号公报
专利文献3:日本特开2014-106707号公报
专利文献4:国际公开第2009/063925号
然而,在上述的现有技术中,存在无法高速并且抑制文件尺寸地进行词素的分隔的解析的问题。
近年来,在Word2Vec等解析等、利用词素解析的结果的领域中,词素的分隔位置的精度的重要性日益增加。
为了应对该需求,在现有技术中,增加词素词典的登记词,提取多个能够拆分的单词候选。但是,在增加了词素词典的登记词的情况下,Trie树和Double Array的尺寸急剧增大,检索以及判定所需的时间变长。
例如,在判定CJK字符串的“アメリカ先住民族”这样的词素的分隔的情况下,不是简单地仅包含“アメリカ先住民”这样的判定,也要一并判定不进行像“アメリカ先住民”、“族”这样的分隔方式。
另外,在Word2Vec将对象字符数据矢量化的情况下,以如下情况为前提:对象字符数据的词素解析的结果是用有意义的字符串的最小单位进行分隔的。因此,在作为Word2Vec的预处理而对对象字符串数据进行分隔的情况下,有利用以往的词素解析进行的划分不是以有意义的字符串的最小单位来分隔,而不适合Word2Vec的目的的情况。
例如,专有名词“三菱東京UFJ銀行金沢文庫支店”、新词“妖怪ウォッチ”其本身是有意义的字符串的对象单位,但在以往的词素解析中,不进行考虑到这样的点的处理。例如,若通过Mecab将对象字符数据“…三菱東京UFJ銀行金沢文庫支店…”拆分为词素,则将有意义的CJK字符串“三菱東京UFJ銀行金沢文庫支店”拆分为“三菱”、“東京”、“UFJ”、“銀行”、“金沢”、“文库”、“支店”。若通过Mecab将对象字符数据“…妖怪ウォッチ…”拆分为词素,则将有意义的CJK字符串“妖怪ウォッチ”拆分为“妖怪”、“ウォッチ”。
另外,在词素解析中,也考虑将专有名词作为未知词来输出,但由于也存在基于登记单词而被拆分、或有用的信息被除去的情况,所以作为用于Word2Vec进行利用的词素解析的结果变得不充分。
发明内容
在一个方面,本发明的目的在于提供一种能够高速并且抑制文件尺寸地进行词素的分隔的解析的解析程序、解析方法以及解析装置。
在第一方案中,使计算机执行以下处理。计算机基于用于词素解析的词典生成索引,上述索引是与登记于词典的各个词素有关的索引,并且在上述索引中设定有能够对登记于词典的各个词素判别前端和末尾的标志。计算机使用索引,从所输入的字符数据中提取多个能够拆分的单词。
通过使用索引,能够高速并且抑制文件尺寸地进行解析。
附图说明
图1是用于对本实施例的解析装置的处理的一个例子进行说明的图。
图2是表示本实施例的解析装置的结构的功能框图。
图3是表示字符串数据的数据结构的一个例子的图。
图4是表示词典数据的数据结构的一个例子的图。
图5是表示数组数据的数据结构的一个例子的图。
图6是表示索引的数据结构的一个例子的图。
图7是用于对索引的哈希化进行说明的图。
图8是表示索引数据的数据结构的一个例子的图。
图9是用于对恢复哈希化后的索引的处理的一个例子进行说明的图。
图10是用于对提取CJK单词的处理的一个例子进行说明的图(1)。
图11是用于对提取CJK单词的处理的一个例子进行说明的图(2)。
图12是表示解析装置的设定部的处理过程的流程图。
图13是表示解析装置的提取部的处理过程的流程图。
图14是表示实现与解析装置相同的功能的计算机的硬件结构的一个例子的图。
具体实施方式
以下,基于附图对本申请所公开的解析程序、解析方法以及解析装置的实施例进行详细说明。此外,本发明并不被该实施例限定。
实施例
图1是用于对本实施例的解析装置的处理的一个例子进行说明的图。如图1所示,解析装置在从字符串数据140a中提取成为拆分候选的单词的情况下,执行下述的处理。例如,字符串数据140a是由CJK字符构成的文档的数据。CJK字符对应于中文、日文或者韩文的字符。
解析装置对字符串数据140a与词典数据140b进行比较。词典数据140b是定义有成为拆分候选的单词(词素)的数据。
解析装置从前端开始对字符串数据140a进行扫描,并提取命中词典数据140b中定义的单词的字符串,并储存至数组数据140c。
数组数据140c具有字符串数据140a所包含的字符串中的在词典数据140b中定义的单词。对各单词的分隔,登记<US(unit separator:单位分隔符)>。例如,解析装置在通过对字符串数据140a与词典数据140b进行比较,而依次命中词典数据140b中登记的“アメリカ”、“アメリカ先住民”、“アメリカ先住民族”的情况下,生成图1所示的数组数据140c。
解析装置若生成数组数据140c,则生成与数组数据140c对应的索引140d。索引140d是将字符和偏移量建立有对应关系的信息。偏移量表示存在于数组数据140c上的相应的字符的位置。例如,在字符“ア”存在于数组数据140c的从前端起第n1字符的情况下,在索引140d的与字符“ア”对应的行(位图)中,在偏移量n1的位置设置标志“1”。
另外,本实施例中的索引140d对单词的“前端”、“末尾”、<US>的位置也与偏移量建立对应关系。例如,单词“アメリカ”的前端为“ア”,末尾为“カ”。在单词“アメリカ”的前端“ア”存在于数组数据140c的从前端起第n2字符的情况下,在索引140d的与前端对应的行中,在偏移量n2的位置设置标志“1”。在单词“アメリカ”的末尾“カ”存在于数组数据140c的从前端起第n3字符的情况下,在索引140d的与“末尾”对应的行中,在偏移量n3的位置设置标志“1”。
另外,在“<US>”存在于数组数据140c的从前端起第n4字符的情况下,在索引140d的与“<US>”对应的行中,在偏移量n4的位置设置标志“1”。
解析装置通过参照索引140d,能够把握构成字符串数据140a所包含的单词的字符的位置、字符的前端、末尾、分隔(<US>)。另外,可以说字符串数据140a中的能够根据索引140d判断的从前端到末尾所包含的字符串为能够拆分的单词。
解析装置通过基于索引140d,将从前端到末尾的字符串作为分隔的单位来判定最长一致字符串,来从字符串数据140a中提取能够拆分的单词。在图1所示的提取结果140e中,提取出单词“アメリカ”、“アメリカ先住民”、“アメリカ先住民族”。
如上述那样,解析装置基于字符串数据140a以及词典数据140b,生成与词典数据140b的单词(词素)相关的索引140d,并且对各单词设定能够判别前端和末尾的标志。而且,解析装置通过利用索引140d,从字符串数据140a中提取多个能够拆分的单词。例如,对于索引140d而言,能够分别通过前端/末尾的标志来识别词典数据140b中定义的能够拆分的单词的块,并将从前端到末尾的字符串作为分隔的单位来判定最长一致字符串,从而提取能够拆分的单词。因此,能够识别能够拆分的单词,能够进行利用针对单词的值的解析。
例如,作为利用针对单词的值的解析的一个例子,提出了将解析装置所提取出的单词作为处理单位,来进行字符串数据140a的矢量运算的处理。
图2是表示本实施例的解析装置的结构的功能框图。如图2所示,解析装置100具有通信部110、输入部120、显示部130、存储部140以及控制部150。
通信部110是经由网络与其他外部装置进行通信的处理部。通信部110对应于通信装置。例如,解析装置100也可以从外部装置接收字符串数据140a、词典数据140b等,并储存至存储部140。
输入部120是用于将各种信息输入至解析装置100的输入装置。例如,输入部120对应于键盘、鼠标、触摸面板等。
显示部130是用于显示从控制部150输出的各种信息的显示装置。例如,显示部130对应于液晶显示器、触摸面板。
存储部140具有字符串数据140a、词典数据140b、数组数据140c、索引数据145、提取结果140e。存储部140对应于闪存(Flash Memory)等半导体存储器元件、HDD(Hard DiskDrive:硬盘驱动器)等存储装置。
字符串数据140a是成为处理对象的文档的数据。图3是表示字符串数据的数据结构的一个例子的图。如图3所示,字符串数据140a例如以CJK字符记载。
词典数据140b是定义成为拆分候选的CJK单词的信息。图4是表示词典数据的数据结构的一个例子的图。图4所示的CJK单词是一个例子。在这里作为一个例子,显示名词的CJK单词,但词典数据140b中也包含有形容词、动词、副词等CJK单词。另外,关于动词,定义有动词的活用形。
数组数据140c具有字符串数据140a所包含的字符串中的在词典数据140b中所定义的CJK单词。图5是表示数组数据的数据结构的一个例子的图。在图5所示的例子中,数组数据140c中的各CJK单词通过<US>来分开。此外,数组数据140c的上侧所示的数字表示从数组数据140c的前端“0”起的偏移量。
索引数据145是与在图1中说明的索引140d对应的数据。如后述那样,索引140d被哈希化,并作为索引数据145储存至存储部140。
提取结果140e表示通过后述的控制部150的处理,从字符串数据140a中提取的成为拆分候选的单词的提取结果。
控制部150具有设定部150a以及提取部150b。控制部150能够通过CPU(CentralProcessing Unit:中央处理器)、MPU(Micro Processing Unit:微处理单元)等来实现。另外,控制部150也能够通过ASIC(Application Specific Integrated Circuit:专用集成电路)、FPGA(Field Programmable Gate Array:现场可编程门阵列)等硬连线逻辑来实现。
设定部150a是基于字符串数据140a以及词典数据140b生成数组数据140c,并基于数组数据140c生成索引数据145的处理部。
对设定部150a基于字符串数据140a和词典数据140b生成数组数据140c的处理的一个例子进行说明。设定部150a对字符串数据140a与词典数据140b进行比较。设定部150a从前端开始对字符串数据140a进行扫描,提取命中词典数据140b中登记的CJK单词的字符串,并储存至数组数据140c。设定部150a将命中的字符串储存至数组数据140c,在接着将命中的字符串储存至数组数据140c的情况下,在前一个字符串之后设定<US>,并在所设定的<US>之后,储存下一个命中的字符串。设定部150a通过反复执行上述处理,生成数组数据140c。
设定部150a在生成数组数据140c之后,生成索引140d。设定部150a通过从前端开始对数组数据140c进行扫描,并将CJK字符和偏移量、CJK字符串的前端和偏移量、CJK字符串的末尾和偏移量、<US>和偏移量建立对应关系,来生成索引140d。
图6是表示索引的数据结构的一个例子的图。如图6所示,索引140d具有与各CJK字符、<US>、前端、末尾对应的位图21~31。例如,将与CJK字符“ア”、“メ”、“リ”、“カ”、“先”、“住”、“民”、“族”对应的位图设为位图21~28。在图6中,省略与其他CJK字符对应的位图的图示。
将与<US>对应的位图设为位图29。将与字符的“前端”对应的位图设为位图30。将与字符的“末尾”对应的位图设为位图31。
例如,在图5所示的数组数据140c中,CJK字符“ア”存在于数组数据140c的偏移量“6、11、19”处。因此,设定部150a在图6所示的索引140d的位图21的偏移量“6、11、19”处设置标志“1”。数组数据140c对于其他CJK字符、<US>也同样地设置标志。
在图5所示的数组数据140c中,各CJK单词的前端存在于数组数据140c的偏移量“6、11、19”处。因此,设定部150a在图6所示的索引140d的位图30的偏移量“6、11、19”处设置标志“1”。
在图5所示的数组数据140c中,各CJK单词的末尾存在于数组数据140c的偏移量“9、17、26”处。因此,设定部150a在图6所示的索引140d的位图31的偏移量“9、17、26”处设置标志“1”。
设定部150a若生成索引140d,则为了减少索引140d的数据量,而对索引140d进行哈希化,从而生成索引数据145。
图7是用于对索引的哈希化进行说明的图。在这里作为一个例子,对索引包含位图10并对这样的位图10进行哈希化的情况进行说明。
例如,设定部150a根据位图10,生成底部29的位图10a和底部31的位图10b。位图10a针对位图10,每隔偏移量29设定分隔,并以位图10a的偏移量0~28的标志表现以所设定的分隔为前端的标志“1”的偏移量。
设定部150a将位图10的偏移量0~28的信息复制至位图10a。设定部150a以如下的方式对位图10a的29及其之后的偏移量的信息进行处理。
在位图10的偏移量“35”处设置有标志“1”。由于偏移量“35”为偏移量“28+7”,所以设定部150a在位图10a的偏移量“6”处设置“(1)”。此外,将偏移量的第一个设为0。在位图10的偏移量“42”处设置有标志“1”。由于偏移量“42”为偏移量“28+14”,所以设定部150a在位图10a的偏移量“13”处设置标志“(1)”。
位图10b针对位图10,每隔偏移量31设定分隔,并以位图10b的偏移量0~30的标志表现以所设定的分隔为前端的标志“1”的偏移量。
在位图10的偏移量“35”处设置有标志“1”。由于偏移量“35”为偏移量“30+5”,所以设定部150a在位图10b的偏移量“4”处设置“(1)”。此外,将偏移量的第一个设为0。在位图10的偏移量“42”处设置有标志“1”。由于偏移量“42”为偏移量“30+12”,所以设定部150a在位图10b的偏移量“11”处设置标志“(1)”。
设定部150a通过执行上述处理,根据位图10生成位图10a、10b。该位图10a、10b为对位图10进行哈希化后的结果。在这里,对位图10的长度为0~43的情况进行了说明,但在位图10的长度为43以上的情况下,也能够用位图10a以及位图10b表现在位图10中所设定的标志“1”。
设定部150a通过对图6所示的各位图21~31进行哈希化,来生成索引数据145。图8是表示索引数据的数据结构的一个例子的图。例如,若对图6所示的索引140d的位图21进行哈希化,则生成图8所示的位图21a以及位图21b。若对图6所示的索引140d的位图22进行哈希化,则生成图8所示的位图22a以及位图22b。若对图6所示的索引140d的位图29进行哈希化,则生成图8所示的位图29a以及位图29b。在图8中,省略有关其他的哈希化后的位图的图示。
返回到图2的说明。提取部150b是基于索引数据145生成索引140d,并基于索引140d提取多个能够拆分的CJK单词的处理部。
首先,对提取部150b基于索引数据145生成索引140d的处理的一个例子进行说明。图9是用于对恢复哈希化后的索引的处理的一个例子进行说明的图。在这里作为一个例子,对基于位图10a和位图10b恢复位图10的处理进行说明。位图10、10a、10b对应于在图7中说明的位图。
对步骤S10的处理进行说明。提取部150b基于底部29的位图10a,生成位图11a。位图11a的偏移量0~28的标志的信息与位图10a的偏移量0~28的标志的信息相同。位图11a的偏移量29及其之后的标志的信息为位图10a的偏移量0~28的标志的信息的反复。
对步骤S11的处理进行说明。提取部150b基于底部31的位图10b,生成位图11b。位图11b的偏移量0~30的标志的信息与位图10b的偏移量0~30的标志的信息相同。位图11b的偏移量31及其之后的标志的信息为位图10b的偏移量0~30的标志的信息的反复。
对步骤S12的处理进行说明。提取部150b通过执行位图11a与位图11b的AND运算(the logical AND operation;逻辑与运算),生成位图10。在图9所示的例子中,在偏移量“0、5、11、18、25、35、42”处,位图11a以及位图11b的标志为“1”。因此,位图10的偏移量“0、5、11、18、25、35、42”的标志为“1”。该位图10为恢复后的位图。提取部150b通过对其他位图也反复执行相同的处理,来恢复各位图,生成索引140d。
提取部150b在生成索引140d之后,基于索引140d,提取能够拆分的CJK单词。图10以及图11是用于对提取CJK单词的处理的一个例子进行说明的图。在图10以及图11所示的例子中,字符串数据140a包含有“アメリカ先住民の…”,从这样的字符串数据140a的第一个字符开始,依次从索引140d读出相应的字符的位图,并执行下述的处理。
对步骤S20进行说明。提取部150b从索引140d读出前端的位图30、末尾的位图31、字符“ア”的位图21。提取部150b通过执行前端的位图30与字符“ア”的位图21的AND运算,来确定字符的前端位置。将前端的位图30与字符“ア”的位图21的AND运算的结果设为位图30A。在位图30A中,在偏移量“6、11、19”处设置有标志“1”,偏移量“6、11、19”表示是CJK单词的前端。
提取部150b通过执行末尾的位图31与字符“ア”的位图21的AND运算,来确定字符的末尾位置。将末尾的位图31与字符“ア”的位图21的AND运算的结果设为位图31A。由于在位图31A中未设置有标志“1”,所以表示在“ア”中不存在末尾候选。
对步骤S21进行说明。提取部150b通过使字符“ア”的位图21向左移动一位,来生成位图21A。提取部150b从索引140d中读出字符“メ”的位图22。提取部150b通过执行位图21A与位图22的AND运算,生成与字符串“アメ”对应的位图50。
提取部150b通过执行末尾的位图31与字符串“アメ”的位图50的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメ”的位图50的AND运算的结果设为位图31B。由于在位图31B中,未设置有标志“1”,所以表示在字符串“アメ”中不存在末尾候选。
对步骤S22进行说明。提取部150b通过使字符串“アメ”的位图50向左移动一位,来生成位图50A。提取部150b从索引140d中读出字符“リ”的位图23。提取部150b通过执行位图50A与位图23的AND运算,生成与字符串“アメリ”对应的位图51。
提取部150b通过执行末尾的位图31与字符串“アメリ”的位图51的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメリ”的位图51的AND运算的结果设为位图31C。由于在位图31C中,未设置有标志“1”,所以表示在字符串“アメリ”中不存在末尾候选。
对步骤S23进行说明。提取部150b通过使字符串“アメリ”的位图51向左移动一位,来生成位图51A。提取部150b从索引140d中读出字符“カ”的位图24。提取部150b通过执行位图51A与位图24的AND运算,来生成与字符串“アメリカ”对应的位图52。
提取部150b通过执行末尾的位图31与字符串“アメリカ”的位图52的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメリカ”的位图52的AND运算的结果设为位图31D。由于在位图31D中设置有标志“1”,所以表示在字符串“アメリカ”中存在末尾候选“カ”。提取部150b将从在步骤S20中确定出的前端的字符“ア”到在步骤S23中判定出的末尾的字符“カ”为止的字符串“アメリカ”提取为拆分候选的CJK单词。
对步骤S24进行说明。提取部150b通过使字符串“アメリカ”的位图52向左移动一位,来生成位图52A。提取部150b从索引140d中读出字符“先”的位图25。提取部150b通过执行位图52A与位图25的AND运算,生成与字符串“アメリカ先”对应的位图53。
提取部150b通过执行末尾的位图31与字符串“アメリカ先”的位图53的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメリカ先”的位图53的AND运算的结果设为位图31E。由于在位图31E中未设置有标志“1”,所以表示在字符串“アメリカ先”中不存在末尾候选。
对步骤S25进行说明。提取部150b通过使字符串“アメリカ先”的位图53向左移动一位,来生成位图53A。提取部150b从索引140d中读出字符“住”的位图26。提取部150b通过执行位图53A与位图26的AND运算,来生成与字符串“アメリカ先住”对应的位图54。
提取部150b通过执行末尾的位图31与字符串“アメリカ先住”的位图54的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメリカ先住”的位图54的AND运算的结果设为位图31F。由于在位图31F中未设置有标志“1”,所以表示在字符串“アメリカ先住”中不存在末尾候选。
对步骤S26进行说明。提取部150b通过使字符串“アメリカ先住”的位图54向左移动一位,来生成位图54A。提取部150b从索引140d中读出字符“民”的位图27。提取部150b通过执行位图54A与位图27的AND运算,来生成与字符串“アメリカ先住民”对应的位图55。
提取部150b通过执行末尾的位图31与字符串“アメリカ先住民”的位图55的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメリカ先住民”的位图55的AND运算的结果设为位图31G。由于在位图31G中设置有标志“1”,所以表示在字符串“アメリカ先住民”中存在末尾候选“民”。提取部120b将从在步骤S20中确定出的前端的字符“ア”到在步骤S26中判定出的末尾的字符“民”为止的字符串“アメリカ先住民”提取为拆分候选的CJK单词。
对步骤S27进行说明。提取部150b通过使字符串“アメリカ先住民”的位图55向左移动一位,来生成位图55A。提取部150b从索引140d中读出字符“族”的位图28。提取部150b通过执行位图55A与位图28的AND运算,来生成与字符串“アメリカ先住民族”对应的位图56。
提取部150b通过执行末尾的位图31与字符串“アメリカ先住民族”的位图56的AND运算,来确定字符的末尾位置。将末尾的位图31与字符串“アメリカ先住民族”的位图56的AND运算的结果设为位图31H。由于在位图31H中,设置有标志“1”,所以表示在字符串“アメリカ先住民族”中存在末尾候选“族”。提取部120b将从在步骤S20中确定出的前端的字符“ア”到在步骤S27中判定出的末尾的字符“族”为止的字符串“アメリカ先住民族”提取为拆分候选的CJK单词。
提取部150b通过使字符串“アメリカ先住民族”的位图56向左移动一位,来生成位图56A。由于在索引140d中不存在与字符串“の”对应的位图,所以提取部150b生成标志全部为“0”的位图29。此时,提取部150b将前一个位图56设为“アメリカ先住民族の”的位图。
提取部150b通过执行步骤S20~步骤S27的处理,来提取字符串数据140a所包含的能够拆分的CJK单词“アメリカ”、“アメリカ先住民”、“アメリカ先住民族”。提取部150b将提取出的各CJK单词的信息作为提取结果140e储存至存储部140。
接下来,对本实施例的解析装置100的处理过程的一个例子进行说明。图12是表示解析装置的设定部的处理过程的流程图。如图12所示,解析装置100的设定部150a对字符串数据140a与词典数据140b的CJK单词进行比较(步骤S101)。
设定部150a将命中的字符串(CJK单词)登记于数组数据140c(步骤S102)。设定部150a基于数组数据140c,生成各字符(CJK字符)的索引140d(步骤S103)。设定部150a对索引140d进行哈希化,生成索引数据145(步骤S104)。
图13是表示解析装置的提取部的处理过程的流程图。如图13所示,解析装置100的提取部150b从哈希化后的索引数据145恢复索引140d(步骤S201)。
提取部150b将从字符串数据140a的前端起第一个字符的位图设定为第一位图,将从前端起第二个字符的位图设定为第二位图(步骤S202)。
提取部150b对第一位图与前端位图进行“AND运算”,在运算结果中存在“1”的情况下,将与第一位图对应的字符确定为前端字符(步骤S203)。
提取部150b对第一位图与末尾位图进行“AND运算”,在运算结果中存在“1”的情况下,将与第一位图对应的字符确定为末尾字符,并提取拆分候选(步骤S204)。
提取部150b在到达字符串数据140a的终端的情况下(步骤S205,是),将提取结果140e保存至存储部140(步骤S206)。另一方面,提取部150b在未到达字符串数据140a的终端的情况下(步骤S205,否),移至步骤S207。
提取部150b将第一位图向左移动一位(步骤S207)。提取部150b将对第一位图与第二位图进行“AND运算”后的位图设定为新的第一位图(步骤S208)。
提取部150b将与第二位图的字符的下一个字符对应的位图设定为新的第二位图(步骤S209),并移至步骤S203。
接下来,对本实施例的解析装置100的效果进行说明。解析装置100基于字符串数据140a以及词典数据140b生成与词典数据140b的单词(词素)有关的索引140d,对各单词设定能够判别前端和末尾的标志。而且,解析装置100通过利用索引140d,从字符串数据140a中提取多个能够拆分的单词。例如,对于索引140d而言,能够分别通过前端/末尾的标志来识别词典数据140b中定义的能够拆分的单词的块,并将从前端到末尾的字符串作为分隔的单位来判定最长一致字符串,从而提取能够拆分的CJK单词。另外,解析装置100使用索引140d来识别能够拆分的CJK单词,能够高速并且抑制文件尺寸地进行解析。
解析装置100通过对与字符串数据140a所包含的各字符的组合对应的位图与前端位图及末尾位图进行AND运算,来判定能够拆分的CJK单词的前端位置以及末尾位置。由此,能够使用索引140d,并通过AND运算来确定能够拆分的CJK单词的前端和末尾,能够减少计算成本。另外,由于解析装置100对索引140d进行哈希化,来生成索引数据145,并储存至存储部140,所以能够进一步减少存储部140所存储的数据的量。
接下来,对实现与上述实施例所示的解析装置100相同的功能的计算机的硬件结构的一个例子进行说明。图14是表示实现与解析装置相同的功能的计算机的硬件结构的一个例子的图。
如图14所示,计算机200具有执行各种运算处理的CPU201、受理由用户进行的数据的输入的输入装置202、以及显示器203。另外,计算机200具有从存储介质读取程序等的读取装置204、以及经由有线或者无线网络与其他计算机之间进行数据的授受的接口装置205。另外,计算机200具有临时存储各种信息的RAM206和硬盘装置207。而且,各装置201~207与总线208连接。
硬盘装置207具有设定程序207a、提取程序207b。CPU201读出设定程序207a、提取程序207b并在RAM206中展开。
设定程序207a作为设定工序206a发挥功能。提取程序207b作为提取工序206b发挥功能。
设定工序206a的处理对应于设定部150a的处理。提取工序206b的处理对应于提取部150b的处理。
此外,各程序207a、207b也可以未必从最初就存储于硬盘装置207。例如,使各程序预先存储至被插入计算机200的软盘(FD)、CD-ROM、DVD盘、光磁盘、IC卡等“便携式物理介质”。而且,计算机200也可以读出并执行各程序206a、206b。
附图标记说明:100…解析装置;110…通信部;120…输入部;130…显示部;140…存储部;140a…字符串数据;140b…词典数据;140c…数组数据;140d…索引;140e…提取结果;145…索引数据;150…控制部;150a…设定部;150b…提取部。
Claims (12)
1.一种解析程序,使计算机执行以下处理:
基于用于词素解析的词典生成索引,所述索引是与登记于所述词典的各个词素有关的索引,并且在所述索引中设定有能够对登记于所述词典的各个词素判别前端和末尾的标志,
使用所述索引,从所输入的字符数据中提取多个能够拆分的单词。
2.根据权利要求1所述的解析程序,其特征在于,
生成所述索引的处理通过对所述字符数据与登记于所述词典的各个词素进行比较生成排列有所述字符数据所包含的词素的数组数据,并按照每个字符生成设置有表示所述数组数据的字符的偏移量的标志的位图,来生成所述索引。
3.根据权利要求2所述的解析程序,其特征在于,
还执行对所述索引设定前端位图和末尾位图的处理,在所述前端位图中设置有表示所述数组数据的字符中的前端的字符的偏移量的标志,在所述末尾位图中设置有表示所述数组数据的字符中的末尾的字符的偏移量的标志。
4.根据权利要求3所述的解析程序,其特征在于,
进行所述提取的处理通过对与所述字符数据所包含的各字符的组合对应的位图与所述前端位图及所述末尾位图进行AND运算,来判定能够拆分的单词的前端位置以及末尾位置,并且基于判定结果,提取多个能够拆分的单词。
5.一种解析方法,是由计算机执行的解析方法,在所述解析方法中执行以下处理:
基于用于词素解析的词典生成索引,所述索引是与登记于所述词典的各个词素有关的索引,并且在所述索引中设定有能够对登记于所述词典的各个词素判别前端和末尾的标志,
使用所述索引,从所输入的字符数据中提取多个能够拆分的单词。
6.根据权利要求5所述的解析方法,其特征在于,
生成所述索引的处理通过对所述字符数据与登记于所述词典的各个词素进行比较生成排列有所述字符数据所包含的词素的数组数据,并按照每个字符生成设置有表示所述数组数据的字符的偏移量的标志的位图,来生成所述索引。
7.根据权利要求6所述的解析方法,其特征在于,
还执行对所述索引设定前端位图和末尾位图的处理,在所述前端位图中设置有表示所述数组数据的字符中的前端的字符的偏移量的标志,在所述末尾位图中设置有表示所述数组数据的字符中的末尾的字符的偏移量的标志。
8.根据权利要求7所述的解析方法,其特征在于,
进行所述提取的处理通过对与所述字符数据所包含的各字符的组合对应的位图与所述前端位图及所述末尾位图进行AND运算,来判定能够拆分的单词的前端位置以及末尾位置,并且基于判定结果,提取多个能够拆分的单词。
9.一种解析装置,具有:
设定部,基于用于词素解析的词典生成索引,所述索引是与登记于所述词典的各个词素有关的索引,并且在所述索引中设定有能够对登记于所述词典的各个词素判别前端和末尾的标志;以及
提取部,使用所述索引,从所输入的字符数据中提取多个能够拆分的单词。
10.根据权利要求9所述的解析装置,其特征在于,
所述设定部通过对所述字符数据与登记于所述词典的各个词素进行比较生成排列有所述字符数据所包含的词素的数组数据,并按照每个字符生成设置有表示所述数组数据的字符的偏移量的标志的位图,来生成所述索引。
11.根据权利要求10所述的解析装置,其特征在于,
所述设定部对所述索引设定前端位图和末尾位图,在所述前端位图中设置有表示所述数组数据的字符中的前端的字符的偏移量的标志,在所述末尾位图中设置有表示所述数组数据的字符中的末尾的字符的偏移量的标志。
12.根据权利要求11所述的解析装置,其特征在于,
所述提取部通过对与所述字符数据所包含的各字符的组合对应的位图与所述前端位图及所述末尾位图进行AND运算,来判定能够拆分的单词的前端位置以及末尾位置,并且基于判定结果,提取多个能够拆分的单词。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-097670 | 2017-05-16 | ||
JP2017097670A JP6972653B2 (ja) | 2017-05-16 | 2017-05-16 | 解析プログラム、解析方法および解析装置 |
PCT/JP2018/010810 WO2018211810A1 (ja) | 2017-05-16 | 2018-03-19 | 解析プログラム、解析方法および解析装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110709830A true CN110709830A (zh) | 2020-01-17 |
CN110709830B CN110709830B (zh) | 2022-11-22 |
Family
ID=64273822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880032030.7A Active CN110709830B (zh) | 2017-05-16 | 2018-03-19 | 储存有解析程序的记录介质、解析方法以及解析装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11386267B2 (zh) |
JP (1) | JP6972653B2 (zh) |
CN (1) | CN110709830B (zh) |
WO (1) | WO2018211810A1 (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0597630A1 (en) * | 1992-11-04 | 1994-05-18 | Conquest Software Inc. | Method for resolution of natural-language queries against full-text databases |
JPH0877293A (ja) * | 1994-09-05 | 1996-03-22 | Toshiba Corp | 文字認識装置および文字認識用辞書作成方法 |
JPH0991386A (ja) * | 1995-09-28 | 1997-04-04 | Toshiba Corp | 文書解析装置及び形態素解析方法 |
KR100757340B1 (ko) * | 2006-03-30 | 2007-09-11 | 엔에이치엔(주) | 자동 추출을 이용한 형태소 분석기 성능 향상 방법 및 상기방법을 수행하는 시스템 |
JP2008165675A (ja) * | 2007-01-04 | 2008-07-17 | Fuji Xerox Co Ltd | 言語解析システム、および言語解析方法、並びにコンピュータ・プログラム |
JP2011044031A (ja) * | 2009-08-21 | 2011-03-03 | Sharp Corp | 電子辞書、辞書検索方法、辞書検索プログラム |
JP2012247555A (ja) * | 2011-05-26 | 2012-12-13 | Nippon Telegr & Teleph Corp <Ntt> | 単語関連度テーブル作成装置とその方法と音声認識装置とプログラム |
JP2014197117A (ja) * | 2013-03-29 | 2014-10-16 | 富士通株式会社 | 音声合成装置及び言語辞書登録方法 |
JP2014202823A (ja) * | 2013-04-02 | 2014-10-27 | 富士通株式会社 | 単語辞書登録用コンピュータプログラム、音声合成装置及び単語辞書登録登録方法 |
JP2015152789A (ja) * | 2014-02-14 | 2015-08-24 | カシオ計算機株式会社 | 音声合成装置、方法、およびプログラム |
US20170103123A1 (en) * | 2015-10-09 | 2017-04-13 | Fujitsu Limited | Index creating device, index creating method, search device, search method, and computer-readable recording medium |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3332142B2 (ja) | 1997-02-10 | 2002-10-07 | 日本電信電話株式会社 | 形態素解析装置とその方法 |
JP2000259629A (ja) * | 1999-03-11 | 2000-09-22 | Hitachi Ltd | 形態素解析方法およびその装置 |
JP5376163B2 (ja) | 2007-11-15 | 2013-12-25 | 日本電気株式会社 | 文書管理・検索システムおよび文書の管理・検索方法 |
JP4734400B2 (ja) | 2008-12-18 | 2011-07-27 | 株式会社東芝 | 文書検索装置およびプログラム |
JP5697648B2 (ja) | 2012-11-27 | 2015-04-08 | ヤフー株式会社 | 単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム |
JP6300601B2 (ja) * | 2014-03-31 | 2018-03-28 | Kddi株式会社 | 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム |
-
2017
- 2017-05-16 JP JP2017097670A patent/JP6972653B2/ja active Active
-
2018
- 2018-03-19 WO PCT/JP2018/010810 patent/WO2018211810A1/ja active Application Filing
- 2018-03-19 CN CN201880032030.7A patent/CN110709830B/zh active Active
-
2019
- 2019-11-05 US US16/673,991 patent/US11386267B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0597630A1 (en) * | 1992-11-04 | 1994-05-18 | Conquest Software Inc. | Method for resolution of natural-language queries against full-text databases |
JPH0877293A (ja) * | 1994-09-05 | 1996-03-22 | Toshiba Corp | 文字認識装置および文字認識用辞書作成方法 |
JPH0991386A (ja) * | 1995-09-28 | 1997-04-04 | Toshiba Corp | 文書解析装置及び形態素解析方法 |
KR100757340B1 (ko) * | 2006-03-30 | 2007-09-11 | 엔에이치엔(주) | 자동 추출을 이용한 형태소 분석기 성능 향상 방법 및 상기방법을 수행하는 시스템 |
JP2008165675A (ja) * | 2007-01-04 | 2008-07-17 | Fuji Xerox Co Ltd | 言語解析システム、および言語解析方法、並びにコンピュータ・プログラム |
JP2011044031A (ja) * | 2009-08-21 | 2011-03-03 | Sharp Corp | 電子辞書、辞書検索方法、辞書検索プログラム |
JP2012247555A (ja) * | 2011-05-26 | 2012-12-13 | Nippon Telegr & Teleph Corp <Ntt> | 単語関連度テーブル作成装置とその方法と音声認識装置とプログラム |
JP2014197117A (ja) * | 2013-03-29 | 2014-10-16 | 富士通株式会社 | 音声合成装置及び言語辞書登録方法 |
JP2014202823A (ja) * | 2013-04-02 | 2014-10-27 | 富士通株式会社 | 単語辞書登録用コンピュータプログラム、音声合成装置及び単語辞書登録登録方法 |
JP2015152789A (ja) * | 2014-02-14 | 2015-08-24 | カシオ計算機株式会社 | 音声合成装置、方法、およびプログラム |
US20170103123A1 (en) * | 2015-10-09 | 2017-04-13 | Fujitsu Limited | Index creating device, index creating method, search device, search method, and computer-readable recording medium |
Also Published As
Publication number | Publication date |
---|---|
US11386267B2 (en) | 2022-07-12 |
WO2018211810A1 (ja) | 2018-11-22 |
CN110709830B (zh) | 2022-11-22 |
JP6972653B2 (ja) | 2021-11-24 |
JP2018195030A (ja) | 2018-12-06 |
US20200065367A1 (en) | 2020-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080294982A1 (en) | Providing relevant text auto-completions | |
US20160055763A1 (en) | Electronic apparatus, pronunciation learning support method, and program storage medium | |
KR102373884B1 (ko) | 텍스트 기반 이미지 검색을 위한 이미지 데이터 처리 방법 | |
JP2018010514A (ja) | 対訳辞書作成装置、対訳辞書作成方法、及び対訳辞書作成プログラム | |
US8411958B2 (en) | Apparatus and method for handwriting recognition | |
CN115994535A (zh) | 文本处理方法及装置 | |
KR102355731B1 (ko) | 해석 프로그램, 해석 방법 및 해석 장치 | |
JP7102710B2 (ja) | 情報生成プログラム、単語抽出プログラム、情報処理装置、情報生成方法及び単語抽出方法 | |
CN110709830B (zh) | 储存有解析程序的记录介质、解析方法以及解析装置 | |
JP3952964B2 (ja) | 読み情報決定方法及び装置及びプログラム | |
JPH11328318A (ja) | 確率テーブル作成装置、確率方式言語処理装置、認識装置、及び、記録媒体 | |
KR20210020294A (ko) | 단어 또는 문장 단위 음성 인식 방법 및 장치 | |
KR102255962B1 (ko) | 템플릿 정보를 이용한 특허문서의 단어 세트 획득 방법 및 시스템 | |
KR102255961B1 (ko) | 오류 단어 수정을 통한 특허문서의 단어 세트 획득 방법 및 시스템 | |
KR102317910B1 (ko) | 중국어 형태소 분석 장치 및 방법 | |
JP2011180687A (ja) | 多言語文書解析装置 | |
JP7124358B2 (ja) | 出力プログラム、情報処理装置及び出力制御方法 | |
US10515297B2 (en) | Recognition device, recognition method, and computer program product | |
JP5032557B2 (ja) | パターン認識装置およびパターン認識方法 | |
KR20210039902A (ko) | 특허문서의 단어 세트 의미 정보 획득 방법 및 시스템 | |
KR20210039904A (ko) | 이미지 정보를 이용한 특허문서의 단어 세트 획득 방법 및 시스템 | |
KR20210039899A (ko) | 특허문서의 단어 세트 획득 방법 및 시스템 | |
KR20210039901A (ko) | 복합 명사구를 포함하는 특허문서의 단어 세트 획득 방법 및 시스템 | |
JP2570311B2 (ja) | 文字列認識装置 | |
JPS6059487A (ja) | 手書文字認識装置 |
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 |