问题标签 [text-normalization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
516 浏览

ruby - 如何从 StringScanner 捕获项目?

我正在使用 Ruby 的 StringScanner 来规范化一些英文文本。

相反,我只是得到" mice".

StringScanner#scan没有捕获(\d)and (\w+)

0 投票
1 回答
229 浏览

php - PHP用preg_replace连接字符串中的小词

为了使文本标准化以进行模糊匹配,我试图将单个字母单词(主要是首字母缩写词的一部分)组合成一个单词。数字被忽略。下面是我所在的位置:

结果:

“CROWN ROYAL XR 加拿大威士忌”、“CROWN ROYAL XR”、“REMY VS OP 8 0”、“BARTON LI IT”

我需要 VSOP 和 LIIT。我已经通过使用$string = preg_replace('/\b([A-Z]){1}\s([A-Z]){1}([A-Z]){1}\s([A-Z]){1}\b/', '\1\2\3\4', $string);first 实现了一种解决方法,但我确定有一个更优雅且成本更低的解决方案?

0 投票
1 回答
446 浏览

regex - 文本文件规范化和模式匹配

我得到了一个用一种元语言编写的文件,它描述了验证某些数据所需的过程。我需要生成验证函数来验证数据。数据已经存储在结构中

我做的步骤:

  1. 使用 char like(' . , ; == >= ) 将文本拆分为字符串 []
  2. 删除冠词、介词...
  3. 规范化文本(如何?)
  4. 使用正则表达式或文本匹配将单词与标记匹配
  5. 使用 Token 类型匹配模式
  6. 根据匹配模式规则生成函数


您将在第 3 步或一般情况下使用什么来改进此过程?

0 投票
1 回答
2144 浏览

ruby-on-rails - 使用 Postgres 全文搜索搜索完全匹配的最佳方法是什么?

我有一个包含大约 150 万条记录的 Postgres 数据库。在我的 Ruby on Rails 应用程序中,我需要搜索该statement_text字段(可以包含 1 到数百个单词)。

我的问题:我知道我可以使用pgSearchgem 来创建类似search_all_wordsor的范围search_any_words,但我不确定确保在结果集中只返回完全匹配的记录的最有效方法是什么。

也就是说,如果我搜索“教皇弗朗西斯”,我希望它只找到连续且顺序相同的这两个词(而不是说,“教皇名叫弗朗西斯”)。

到目前为止,我刚刚将 GIN 索引与ILIKE完全匹配搜索结合起来。但是考虑到 GIN 索引本质上是通过在每条记录中存储单词的确切位置来工作的,难道不应该有一种更有效(非ILIKE)的方法来确保搜索词与该字段完全匹配吗?

0 投票
1 回答
24 浏览

diacritics - 在 tomcat 中部署战争后,Java 文本规范化的行为有所不同

我正在尝试规范化具有重音字符的字符串。它在我的 intellij IDE 上运行良好,但是当我使用 maven 构建它并在 tomcat 中部署战争时,我得到了这样的意外结果。你能帮忙吗?

规范化的 Java 代码

来自 tomcat 日志的输出:

当我在 IDE 中的本地机器上运行相同代码时的输出

我需要在某处指定一些编码设置吗?

我的行家有这个:

这存在于我在 tomcat 中的 server.xml 中

0 投票
0 回答
99 浏览

unicode - 为什么 NFKC 规范化会丢失上标和下标信息?

我注意到,在将 Unicode 字符串规范化为 NFKC 形式时,上标字符(如¹(U+00B9)、²(U+00B2)、³(U+00B3) 等)会转换为相应的 ASCII 数字(例如123等)。

有谁知道这种行为的理由?似乎它在此过程中丢失了信息。例如,上标数字通常具有某种上下文含义。

0 投票
1 回答
1126 浏览

python - 无法在 Windows 上安装 text_normalizer

我尝试通过 Anaconda Prompt (anaconda3) 或 Jupyter Notebook pip install text_normalizer 并不断收到相同的错误

我以管理员身份登录。pip3 也无法识别。不知道还有什么可以尝试的。

0 投票
0 回答
45 浏览

python-3.x - Python:如果单词中的字符是字母,则仅保留超过 3 个单词的行

下面的代码 1 允许我只保留超过 3 个单词的行。在我的大文本文档的某些行中,有一些行包含非字母字符和 3 个或更少的单词,我也想从我清理的行列表中排除这些行。在代码 2 中使用.isalpha()时,在计算一行中的单词时似乎不再逐行进行。我是 Python 新手,如果有人能帮助我,我将不胜感激。我想保留的线条是lines_clean = ["This is some text as an", "what I want to"]

代码 1:

代码 2(未按预期工作):

0 投票
1 回答
105 浏览

java - 用空格区分空文本节点和文本节点

在验证 xml 文件时,我想记录任何内容为空的文本节点。换行符 \n 也被认为是 texnode,但这不是我想要证明的。在下面的代码中:'parent' 有两个我不感兴趣的内容为 '\n' 的文本节点。'elem1'的内容是'\n\n',这是一个错误,必须报告。'elem2' 的内容有效。“书籍”的内容为空,必须报告。

在我的第一次尝试中,我在每个文本节点中搜索 [\n\t\r] 并忽略它们。但是这样我也会忽略应该报告为错误的 elem1 。

我做错了什么?(注意:我必须在没有 xsd-validation 的情况下解决这个问题)

更新 1):我在元素之间添加了更多 \n 。现在第一个“父”节点有 5 个文本节点,内容为:\n

更新 2) 更清晰:如果调用者调用说 validate("//parent/*"),我收集这个给定路径的所有节点并返回一个节点列表。然后我开始验证每个节点及其子节点。

Wenn 我到达了第一个“父”元素,它显示了 7 个子元素(在更新示例之后)。元素标签之间的每个 \n 都被视为一个文本节点。

作为下一个解决方案,我现在尝试将所有 \n 替换为 "" 以摆脱它们......

0 投票
0 回答
29 浏览

python - 确定一个数字的词性

对于给定的号码,我想根据上下文区分它是电话号码还是数量值。我现在的一个想法是弄清楚它的词性,但我在使用 NLTK 时遇到了麻烦。

例如:“你有多少本书?我有 911 本书。” 在这种情况下,911是形容词,所以应该转换为“九百一十一”。但在这句话中,“你能不能拨打911,有紧急情况!” 911是名词(电话号码),应转换为“九一一”

当我在 NLTK 中使用分词器时,它只告诉我 911 是一个基数,但有没有办法改变它,让它给我一个更具体的词性?(我想要名词、形容词或代词)