正则表达式将从文本文件中提取句子

2024-06-19

我需要一个正则表达式来从文本文件中提取句子。 示例文本:

以 2004 年底发生的亚洲海啸灾难为例。对 Google 新闻 (http://news.google.com) 的查询在一个月内(1 月 17 日)返回了超过 80,000 篇有关该事件的在线新闻文章截至 2005 年 2 月 17 日)。先生提供的信息卡哈纳。

这是我的代码:

$re = '/(?<=[.!?]|[.!?][\'"])\s+/';
$sentences = preg_split($re, $text, -1, PREG_SPLIT_NO_EMPTY);

但最后一句话还是分裂了information by mr. and Kahana.怎么解决呢?谢谢 :)


你不能用正则表达式来做到这一点

英语作为一种语言并不符合适当的格式规则。因此,正则表达式不适合实现您正在寻求的目的。您真正需要的是自然语言处理器之类的东西。

除非这对您的程序至关重要,否则我建议您确定以下事项:

  • 可接受的错误水平是多少?你所做的一切都不会是完美的。但如果80%有效就可以了吗? 90%? 99%?这对您/您的客户有多重要?
  • 文字从哪里来?例如,教科书的写法很可能与人们的推特提要不同。您可以根据您在使用的实际文本中看到的内容进行研究并进行例外处理。
  • 我在用文字做什么?如果您只是对关键字之类的内容进行索引,那么正确分割句子并不重要(同样重要)。这一切都是为了调整程序以获得适合此特定目的的输出。

我的建议是通过反复试验来尽可能降低错误率。在大量文本上运行程序,并不断添加异常,直到获得可接受的错误率。然而,如果您需要超过几十条规则,您可能只想重新考虑这个问题。

简而言之,PHP 和正则表达式并不是为此目的,因为英语很时髦。因此,要么通过添加异常来获得较小的错误率,要么完全重新考虑这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式将从文本文件中提取句子 的相关文章

  • FilesystemIterator 中的顺序

    http php net manual en class filesystemiterator php http php net manual en class filesystemiterator php 我注意到FilesystemIt
  • WordPress 固定链接永远不会在本地主机 Ubuntu 12.10 上工作

    除默认设置外 Wordpress 永久链接不起作用 如何启用此重写 我试过了 sudo a2enmod rewrite sudo service apache2 restart 永久链接保存到 localhost wordpress 中的
  • 如何仅更改音频文件的 AWS S3 内容类型

    我在 AWS S3 存储桶上有超过 50000 个文件 音频 图像 pdf 现在我面临着 Firefox 的问题 由于其内容类型 音频文件无法在 Firefox 上播放 之前一直运转良好 当我更改内容类型时 音频文件效果很好二进制 八位字节
  • mysql utf8_general_ci 区分大小写

    我有一个 mysql 数据库 我使用 utf8 general ci 不区分大小写 在我的表中 我有一些列 例如 ID 和区分大小写的数据 例如 iSZ6fX 或 AscSc2 为了区分大写和小写 最好只在这些列上设置 utf8 bin 如
  • 有没有办法在 PHP 中进行 100% 面向对象的编程?

    我想 可以在单独的类中调用函数 我在 PHP 中称之为面向对象编程 但一开始总有一个index php什么的 它调用或者实例化另一个类 有没有办法让一个类像java那样进行自调用 public static void main String
  • PHPUnit 测试套件包含路径

    使用 phpunit 时 我在包含路径方面遇到了一些麻烦 不是针对 phpunit 本身 而是针对我的代码和测试目录 我有以下代码结构 Application StringCalculator php tests StringCalcula
  • CodeIgniter“找不到您请求的页面。”错误?

    我在使用 CodeIgniter 时遇到问题 我已经检查了互联网上所有可能的解决方案 似乎对我的情况没有任何帮助 我不是一个大专业人士 这是我第一次使用 CodeIgniter 所以不要对我严厉 路线 php route default c
  • 是否可以动态添加代码/扩展类?

    我想为我的代码编写一种 插件 模块 系统 如果我可以在定义类后将内容 添加 到类中 那么事情会变得更加容易 例如 这样的事情 class foo public function a return b 上课了 现在我想在定义后向其中添加另一个
  • 如何去掉所有标签并得到纯文本?

    我必须将用户输入文本存储在我的数据库中HTML and CSS格式 案例是 Rad编辑器 http www telerik com products aspnet ajax editor aspx 用户将文本从 MSWord 复制到此编辑器
  • WooCommerce 订阅 - 获取特定订阅的产品

    有没有办法从 product from subscription 谢谢这个帖子 https stackoverflow com questions 42791096 woocommerce subscriptions get related
  • 如何在 PHP 中识别请求的页面

    有没有简单的方法来识别最初处理请求的文件 忽略获取参数并处理 至少是基本的 映射 例如 to index php 理想情况下 我正在寻找类似的东西 SERVER REQUEST URI 但无论 get 参数如何 它都会返回相同的值 并且该值
  • PHP:将“’”字符从 ISO-8859-1 转换为 UTF-8 时出现问题

    我在使用 PHP 将 ISO 8859 1 数据库内容转换为 UTF 8 时遇到一些问题 我正在运行以下代码来测试 Connect to a latin1 charset database and retrieve Georgia O Ke
  • htaccess 文件中的动态重写

    我正在我的 htaccess 文件中进行一些重写和重定向 我这样做的原因是因为我正在为现有网站开发新的设计和布局 因此我需要重定向以保持谷歌排名等 所以旧的 现有的 URL 看起来像这样 news internet shopper numb
  • PHP exec() 返回值是什么?

    我正在尝试使用 PHP exec 函数 如果 return var 参数与输出参数一起存在 那么执行命令的返回状态将被写入此 多变的 如果执行成功 则为 0 但是 如果出现错误 则可能是多个其他整数 我似乎无法在任何地方找到这些整数对应的内
  • CodeIgniter form_validation->run() 总是返回 false?

    我是新来的CodeIgniter我一直在尝试实现表单提交功能 但是每当我按 提交 时 表单页面只会刷新并且数据库不会更新 看来 this gt form validation gt run 总是返回 false 但我不知道为什么 The 控
  • Zend Framework 中数据库驱动路由的教程?

    我正在开发一个需要使用数据库驱动的 MVC 方案的项目 其中控制器和视图的路由通过单个数据库表进行控制 但是 我无法找到任何使用当前版本的框架演示这一点的教程 它们似乎都是在几个版本之前编写的 我想知道是否有人用更新的版本做过类似的事情框架
  • 如何正确转义 CSV 中的双引号?

    我的 CSV 中有这样一行 Samsung U600 24 10000003409 1 10000003427 旁边引用24用于表示英寸 而该引号旁边的引号则关闭该字段 我正在读这行fgetcsv但解析器犯了一个错误 并将该值读取为 Sam
  • 重定向后丢失会话变量

    用户填写用户名和密码 如果正确 页面会加载一些信息 例如user id到会话变量 该脚本制作了一个header Location 重定向 不知何故 下一页无法识别会话 怎么会 重定向到同一个域 并且所有页面都有session start 我
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • XDebug 与 Symfony 和 PhpStorm 不起作用(Ubuntu 安装)

    关于我的系统的事实乌班图15 10PHP 5 6 11交响乐2 7PhpStorm 10调试2 4我真的很难让 xdebug 在 PhpStorm 的 Symfony 项目下工作 我安装了xdebug 在我的 etc php5 apache

随机推荐