当前位置: 首页 > 面试题库 >

将文本分割成单个单词

凌志学
2023-03-14
问题内容

我想使用PHP将文本拆分成单个单词。你有什么想法要实现吗?

我的方法:

function tokenizer($text) {
    $text = trim(strtolower($text));
    $punctuation = '/[^a-z0-9äöüß-]/';
    $result = preg_split($punctuation, $text, -1, PREG_SPLIT_NO_EMPTY);
    for ($i = 0; $i < count($result); $i++) {
        $result[$i] = trim($result[$i]);
    }
    return $result; // contains the single words
}
$text = 'This is an example text, it contains commas and full-stops. Exclamation marks, too! Question marks? All punctuation marks you know.';
print_r(tokenizer($text));

这是一个好方法吗?您有改进的想法吗?

提前致谢!


问题答案:

使用与任何Unicode标点符号匹配的\ p {P}类和\ s空格类。

$result = preg_split('/((^\p{P}+)|(\p{P}*\s+\p{P}*)|(\p{P}+$))/', $text, -1, PREG_SPLIT_NO_EMPTY);

这将拆分为一组一个或多个空格字符,但也会吸收周围的所有标点符号。它还在字符串的开头或结尾匹配标点符号。这区分了诸如“不要”和“他说’哎呀!’”之类的情况。



 类似资料:
  • 问题内容: 一直在撕我的头发。 如何将多页/多层TIFF图像分成几个单独的图像? 演示图像在这里。 (宁愿使用纯Java(即非本机)解决方案。该解决方案是否依赖于商业库也没关系。) 问题答案: 您可以使用 Java高级映像 库JAI通过使用ImageReader分割多页TIFF: 然后,您可以获得页面数: 并分别阅读页面:

  • 我有一个横向的pdf,是一个“页面扩展”。 > 我需要在中间垂直地将页面分成两半。 我使用此设置将pdf切成两半:此设置将获取页面的左侧部分 上面的命令工作正常。我现在的问题是,我需要设置类似于拆分页面大小的MeDM ox、Cropbox、Bleedbox、Trimbox和artbox。在上面的实例中;它应该是750x1085。 在GS上运行的正确命令/设置应该是什么,以便Mediabox、Cro

  • 问题 你想将一个模块分割成多个文件。但是你不想将分离的文件统一成一个逻辑模块时使已有的代码遭到破坏。 解决方案 程序模块可以通过变成包来分割成多个独立的文件。考虑下下面简单的模块: # mymodule.py class A: def spam(self): print('A.spam') class B(A): def bar(self): pr

  • 本文向大家介绍Python如何将将模块分割成多个文件,包括了Python如何将将模块分割成多个文件的使用技巧和注意事项,需要的朋友参考一下 问题 你想将一个模块分割成多个文件。但是你不想将分离的文件统一成一个逻辑模块时使已有的代码遭到破坏。 解决方案 程序模块可以通过变成包来分割成多个独立的文件。考虑下下面简单的模块: 假设你想mymodule.py分为两个文件,每个定义的一个类。要做到这一点,首

  • 本文向大家介绍易语言分割文本命令将一段文本通过指定文本分割开,包括了易语言分割文本命令将一段文本通过指定文本分割开的使用技巧和注意事项,需要的朋友参考一下 分割文本命令 英文命令:split 操作系统支持:Windows、Linux    所属类别:文本操作 将指定文本进行分割,返回分割后的一维文本数组。 语法:  文本型数组  分割文本 (待分割文本,[用作分割的文本],[要返回的子文本数目])

  • 我正在处理这样的文本文件: 第01章 乱数假文 多洛·希特·阿梅特,一位杰出的献身者,他是一位临时顾问 第02章 献祭 临时行政长官 第03章 等等,多洛尔·马格纳·阿利夸。 带有分隔符,如“章”、“章”、“章”等...和1或2位数(“第1章”或“第01章”)。 我使用和 现在我需要拆分我的字符串,以便获得“第二十章”的文本。 对于第02章,这将是: 献祭 临时行政长官 我是Python新手,我读