rebib/igo-php

将形态分析引擎 'Igo' 调整并移植到 PHP 5.3 和 composer。

0.2.0 2019-11-30 04:50 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:48 UTC


README

1, 概要

这是“Igo - Java 形态分析器”的 PHP 实现。Igo 是一个使用 MeCab 词典格式的形态分析程序,几乎提供与 MeCab 相同的结果。这个 Igo-php 提供了与 Igo 相同的形态分析和分词功能。

2, 安装方法

使用 composer 执行以下命令。

$ composer require rebib/igo-php

3. 创建词典的方法

Igo-php 本身不提供词典生成功能。因此,在创建词典时,请使用本家的 Igo。

有关详细信息,请参阅 https://igo.osdn.jp/index.html#usage,以下仅展示简单的步骤。

使用这些

$ java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

按照以下步骤,在当前目录下生成的 ipadic/ 以下是词典本体。请将其复制到适当的目录中使用。

4. 使用方法

a. 分词

<?php
require 'vendor/autoload.php';

$igo = new Igo\Tagger();
$result = $igo->wakati('すもももももももものうち');
print_r($result);

b. 形态分析

<?php
require 'vendor/autoload.php';

$igo = new Igo\Tagger();
$result = $igo->parse('すもももももももものうち');
print_r($result);

如果指定的字符串无法判断出适当的编码,可以像单独使用时一样,通过更改 Igo 类构造函数中的 output_encoding 值并显式指定输出编码来避免。

$igo = new Igo\Tagger([
    'dict_dir'=>"/home/user/jdic",
    'output_encoding'=>'Shift_JIS'
]);

默认情况下,优先识别 UTF-8。

5. REDUCE 模式

这是为了调整运行时的内存使用而设计的。默认情况下,REDUCE 模式为 TRUE。在这种情况下,Igo-php 会直接访问词典文件进行解析。设置为 OFF 时,在构造函数执行时,将词典存储在内部内存中。解析处理本身会稍微快一些,但使用的内存会增加。如果需要批量处理大量文本数据,请将其设置为 OFF(但是,在这种情况下,使用本家的 Igo 会更快)。要关闭 REDUCE 模式,请在构造函数中添加 reduce_mode。

$igo = new Igo\Tagger([
    'dict_dir'=>'/home/user/jdic',
    'reduce_mode'=>false
]);

此外,在以 FALSE 使用 REDUCE 模式的情况下,需要适当设置 memory_limit 参数等。

ini_set("memory_limit", "1073741824"); //1024^3

6. 字节序问题

二进制词典的字节序取决于创建词典的环境。在大端环境下生成的大端词典在小端平台上无法使用。反之亦然。Igo-php 默认设置为小端设置。在英特尔平台上应该没问题。在需要在大端平台上使用的情况下,请在构造函数中更改 little_endian 的值。

$igo = new Igo\Tagger(array(
    'dict_dir'=>"/home/user/jdic",
    'little_endian'=>true //true->Little endian, false->Big endian
));

7. 许可证

以 MIT 许可证分发。有关详细信息,请参阅附带的 COPYING 文件。另外,关于使用的词典的许可证,请按照词典分发源的许可证执行。

8. 联系方式

9. 参考链接

「Igo - Java 形态分析器」 https://igo.osdn.jp/