vanderlee / php-sentence
简单的文本句子分割和计数。支持至少英语、德语和荷兰语,可能还有更多。
Requires
- php: >=5.4.0
- ext-ctype: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^3.6.12
This package is auto-updated.
Last update: 2024-09-11 10:50:00 UTC
README
版本 1.0.8
版权所有 © 2016-2024 Martijn van der Lee (@vanderlee),部分版权 © 2017 @marktaw。
适用于 MIT 开源许可证。
简介
PHP 自然语言句子分割(分割)和计数。句子边界歧义消除。
还处于早期阶段,但应支持大多数西方语言。如果您发现任何问题,请告诉我。
支持PHP 5.3及以上版本,因此您可以在旧服务器上使用它。
安装
需要 PHP 5.4 或更高版本。如果不需要更多新功能,则支持 PHP 5.3。
使用 Composer 安装
composer require vanderlee/php-sentence
方法
integer
count(
string
$text)
计算文本中的句子数量。为了方便提供;这正好与从 split
返回的数组项数相同,因此如果您需要这两个结果,只需这样做即可。
array
split(
string
$text,
integer
$flags = 0)
将文本分割成句子。
$flags
是零(0
,默认值)或以下类常量
Sentence::SPLIT_TRIM
:从每个返回句子的左右两侧修剪空白字符。
文档
您可以在此处找到由 ApiGen 生成的源代码文档:[ApiGen 文档](https://github.com/vanderlee/php-sentence/blob/HEAD/doc/)
示例
<?php
// This is the test text we're going to use
$text = "Hello there, Mr. Smith. What're you doing today... Smith,"
. " my friend?\n\nI hope it's good. This last sentence will"
. " cost you $2.50! Just kidding :)";
// Create a new instance
$Sentence = new \Sentence;
// Split into array of sentences
$sentences = $Sentence->split($text);
// Count the number of sentences
$count = $Sentence->count($text);
?>
工作原理
使用的方 法不是基于任何已建立或发布的方 法。尽管如此,它似乎效果不错。
该方法遵循一系列简单的步骤来分割和重新合并文本成完整的句子。您可以在代码中轻松检查这些步骤。
虽然分割可能有些不准确,尤其是在句子开头的缩写词往往与前面的句子合并。在大多数普通文本中,这应该不会造成问题。在任 何情况下,这都不太可能影响句子计数,除非在非常罕见的情况下。
应注意,此算法依赖于语法上相对正确的标点符号。请不要使用 L33t-5p3ak!!!!!1!1!11!eleven!!
规则
以下是一个大致的规则列表,用于分割句子。
- 每个换行符都分隔句子。
- 文本的末尾表示句子结束,除非通过适当的标点符号结束。
- 句子必须至少有两个单词长,除非是换行符或文本末尾。
- 空行不是句子。
- 每个问号或感叹号或它们的组合都视为句子结束。
- 单个句号视为句子结束,除非...
- 它前面有一个单词,或者...
- 它后面有一个单词。
- 多个句号的序列不视为句子结束。