1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wolferhua-phpanalysis

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Обзор системы сегментации:

PHPAnalysis — это программа для сегментации слов, которая использует словарь на основе Unicode и метод обратного сопоставления. Теоретически она совместима с более широким спектром кодировок и особенно удобна для UTF-8. Поскольку PHPAnalysis является бескомпонентной системой, её скорость может быть немного ниже, чем у компонентных систем. Однако при большом объёме сегментации, поскольку загрузка словаря происходит одновременно с сегментацией, объём текста увеличивает скорость работы программы. Это нормальное явление.

Словарь PHPAnalysis организован в виде структуры данных, подобной хэш-таблице, что делает его эффективным для коротких строк. Для таких строк требуется лишь небольшой объём ресурсов, а размер словаря не влияет на скорость сегментации.

Система сегментации PHPAnalysis основана на методе сопоставления строк, который также называют механическим методом сегментации. Этот метод включает сопоставление анализируемого китайского текста с записями в обширном машинном словаре. Если совпадение найдено, оно считается успешным (определяется слово). В зависимости от направления сканирования, методы сопоставления могут быть прямыми или обратными; в зависимости от приоритета длины совпадения — максимальными (самыми длинными) или минимальными (самыми короткими); в зависимости от того, связаны ли они с процессом маркировки частей речи, — простыми методами сегментации или комплексными методами, объединяющими сегментацию и маркировку.

Вот несколько распространённых механических методов сегментации:

  • прямая максимальная сегментация (слева направо);
  • обратная максимальная сегментация (справа налево);
  • минимальное разделение (минимизация количества слов в каждом предложении).

Также можно комбинировать эти методы, например, прямую максимальную сегментацию с обратной максимальной сегментацией. Из-за особенностей китайского языка, прямая минимальная сегментация и обратная минимальная сегментация используются редко. Обычно обратная сегментация обеспечивает более высокую точность, чем прямая. Статистические данные показывают, что ошибка прямой максимальной сегментации составляет примерно 1/169, а ошибка обратной максимальной сегментации — примерно 1/245. Но эта точность всё ещё далека от реальных потребностей.

В практических системах сегментации механический метод используется как начальный этап, после чего применяются другие языковые данные для повышения точности сегментации. Другой подход заключается в улучшении метода сканирования, называемого «сегментация по признакам» или «сегментация с использованием маркеров». Он предполагает поиск и разделение слов с явными признаками, которые служат ориентирами для разделения исходного текста на более мелкие сегменты, что снижает вероятность ошибок при сегментации. Ещё один подход объединяет сегментацию со снятием лексической омонимии, используя богатую информацию о частях речи для принятия решений о сегментации и проверяя и корректируя результаты сегментации во время процесса снятия омонимии. Это значительно повышает точность сегментации.

PHPAnalysis:

Сегментация PHPAnalysis сначала грубо разделяет текст, затем применяет метод обратной максимальной сегментации (RMM) к коротким предложениям для более точной сегментации. После сегментации результаты оптимизируются, чтобы получить окончательный результат.

Документация класса API PHPAnalysis

Важные переменные-члены

$resultType   = 1;       // Тип данных результата сегментации (1 — все данные, 2 — словарные слова и отдельные китайские, японские, корейские, английские символы, 3 — только словарные и английские слова). Эту переменную обычно устанавливают с помощью метода SetResultType($rstype).
$notSplitLen  = 5;        // Минимальная длина предложения для сегментации
$toLower      = false;    // Преобразование всех английских слов в нижний регистр
$differMax    = false;    // Использование максимального разделения для устранения неоднозначности биграмм
$unitWord     = true;     // Попытка объединить однобуквенные слова (обнаружение новых слов)
$differFreq   = false;    // Применение частотного подхода для устранения неоднозначности

Основные функции-члены

1. public function __construct($source_charset='utf-8', $target_charset='utf-8', $load_all=true, $source='')

Функция: конструктор Параметры: $source_charset — исходная кодировка строки $target_charset — целевая кодировка каталога $load_all — полная загрузка словаря (этот параметр больше не используется) $source — исходная строка Если входные и выходные данные имеют формат utf-8, то инициализация не требует параметров, достаточно установить текст для обработки с помощью метода SetSource().

2. public function SetSource( $source, $source_charset='utf-8', $target_charset='utf-8' )

Функция: установка исходной строки Параметры: $source — исходная строка $source_charset — кодировка исходной строки $target_charset — целевая кодировка Возвращаемое значение: bool

3. public function StartAnalysis($optimize=true)

Функция: запуск процесса сегментации Параметры: $optimize — оптимизация результатов после сегментации Возвращаемое значение: void Пример базового процесса сегментации:

$pa = new PhpAnalysis();

$pa->SetSource('Текст для сегментации');

// Установка свойств сегментации
$pa->resultType = 2;
$pa->differMax  = true;

$pa->StartAnalysis();

// Получение желаемого результата
$pa->GetFinallyIndex();

4. public function SetResultType( $rstype )

Функция: настройка типа возвращаемых результатов Фактически это операция над переменной-членом $resultType. Параметр $rstype имеет значения: 1 — все данные 2 — словарные слова и отдельные китайские, японские, корейские, английские символы 3 — только словарные и английские слова Возвращаемое значение: void

5. public function GetFinallyKeywords( $num = 10 )

Функция: получение наиболее частотных ключевых слов (обычно используется для извлечения ключевых слов из документов) Параметр: $num = 10 — количество возвращаемых ключевых слов Возвращаемое значение: список ключевых слов через запятую

6. public function GetFinallyResult($spword=' ')

Функция: получение окончательного результата сегментации Параметр: $spword — разделитель между словами Возвращаемое значение: string

7. public function GetSimpleResult()

Функция: получение результатов грубой сегментации Возвращаемое значение: array

8. public function GetSimpleResultAll()

Функция: получение результатов грубой сегментации с информацией об атрибутах Атрибуты (1 — китайский текст, 2 — ANSI словарные слова, 3 — знаки пунктуации ANSI, включая полные формы, 4 — цифры, включая полные формы, 5 — китайские знаки пунктуации или неразборчивые символы) Возвращаемое значение: массив

9. public function GetFinallyIndex()

Функция: получение массива индексов хэша Возвращаемое значение: array('word'=>count,...), отсортированный по частоте появления

10. public function MakeDict( $source_file, $target_file='' )

Функция: компиляция текстового файла словаря в словарь Параметры: $source_file — исходный текстовый файл $target_file — целевой файл (если не указан, используется текущий словарь) Возвращаемое значение: void

11. public function ExportDict( $targetfile )

Функция: экспорт всех записей текущего словаря в текстовый файл Параметр: $targetfile — целевой файл Возвращаемое значение: void

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Программа для морфологического анализа PHPAnalysis использует словарь на основе Unicode и осуществляет морфологический анализ методом обратного сопоставления, что теоретически обеспечивает более широкую совместимость с кодировками и особенно удобно при работе с UTF-8. Поскольку PHPAnalysis является бескомпонентной системой, её скорость может бы... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wolferhua-phpanalysis.git
git@api.gitlife.ru:oschina-mirror/wolferhua-phpanalysis.git
oschina-mirror
wolferhua-phpanalysis
wolferhua-phpanalysis
master