Apache OpenNLP(二)

来源:互联网 发布:深圳市软件产业协会 编辑:程序博客网 时间:2024/05/07 11:10

二、标记生成器 Tokenizer

        1、 标记化

        OpenNLP令牌器将输入字符序列分段成令牌。 令牌通常是字词,标点符号,数字等。

        以下结果显示了以空格分隔表示的各个标记。

        OpenNLP提供多种tokenizer实现:

            空白标记符 - 空白标记符,非空格序列被标识为标记
            简单令牌 - 字符类记号化器,相同字符类的序列是令牌

            可学习令牌器 - 最大熵令牌器,基于概率模型检测令牌边界

            大多数词性标记器,解析器等都使用以这种方式标记的文本。 重要的是确保您的令牌器生成您的以后的文本处理组件所期望的类型的令牌。

            使用OpenNLP(与许多系统一样),令牌化是一个两阶段过程:首先,识别句子边界,然后识别每个句子内的令牌。

    2、Tokenizer Tools

          尝试令牌化器的最简单的方法是命令行工具。 这些工具仅用于演示和测试。

         有两个工具,一个用于简单令牌器,一个用于可学习令牌器。 用于空白标记器的命令行工具不存在,因为空格分隔的输出将与输入相同。

         以下命令显示如何使用简单标记工具。

         $ opennlp SimpleTokenizer

         要使用可学习的tokenizer从我们的网站下载英语令牌模型。

         $ opennlp TokenizerME en-token.bin

       要测试分词器,将样本从上面复制到控制台。 空格分隔的令牌将被写回控制台。

        通常输入从文件读取并写入文件。

       $ opennlp TokenizerME en-token.bin < article.txt > article-tokenized.txt

        对于Simple Tokenizer,它可以以相同的方式完成。

        由于大多数文本是真正原始的,没有句子边界等,它可能创建一个管道,首先执行句子边界检测和标记化。 下面的例子说明了这一点。

       $ opennlp SentenceDetector sentdetect.model < article.txt | opennlp TokenizerME tokenize.model | more
       Loading model ... Loading model ... done
       done
      Showa Shell gained 20 to 1,570 and Mitsubishi Oil rose 50 to 1,500.
      Sumitomo Metal Mining fell five yen to 692 and Nippon Mining added 15 to 960 .
      Among other winners Wednesday was Nippon Shokubai , which was up 80 at 2,410 .
      Marubeni advanced 11 to 890 .
      London share prices were bolstered largely by continued gains on Wall Street and technical 
      factors affecting demand for London 's blue-chip stocks .
      ...etc...

      当然这一切都在命令行上。许多人通过创建SentenceDetector和Tokenizer对象并在适当时调用他们的方法,直接在Java代码中使用模型。以下部分将解释如何直接从java使用Tokenizers。


0 0
原创粉丝点击