问题标签 [tokenize]

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 投票
5 回答
5219 浏览

c++ - 在 C++ 中标记字符串并包含分隔符

我正在使用以下内容进行标记,但不确定如何在其中包含分隔符。

0 投票
4 回答
10833 浏览

sql - PL/SQL 是否有与 Java 等效的 StringTokenizer?

我使用 java.util.StringTokenizer 来简单解析 java 中的分隔字符串。我需要在 pl/sql 中使用相同类型的机制。我可以写它,但如果它已经存在,我更愿意使用它。有人知道 pl/sql 实现吗?一些有用的选择?

0 投票
3 回答
887 浏览

character-encoding - 快速 ESP 字符归一化

我正在 FAST ESP 服务器上运行搜索应用程序。现在我在字符规范化方面遇到了这个问题。

我想要的是搜索“wurth”并在“würth”中获得成功。

我尝试在 esp/etc/tokenizer/tokenization.xml 中配置以下内容

但是当然,这会将所有 u 转换为 ü,这是没有用的。

如何以正确的方式配置它?

0 投票
2 回答
1099 浏览

javascript - Is there a simple way I can tokenize a string without a full-blown lexer?

I'm looking to implement the Shunting-yard Algorithm, but I need some help figuring out what the best way to split up a string into its tokens is.

If you notice, the first step of the algorithm is "read a token." This isn't exactly a non-trivial thing to do. Tokens can consist of numbers, operators and parens.

If you are doing something like:

(5+1)

A simple string.split() will give me an array of the tokens { "(", "5", "+", "1", ")" }.

However, it becomes more complicated if you have numbers with multiple digits such as:

((2048*124) + 42)

Now a naive string.split() won't do the trick. The multi-digit numbers are a problem.

I know I could write a lexer, but is there a way to do this without writing a full-blown lexer?

I'm implementing this in JavaScript and I'd like to avoid having to go down the lexer-path if possible. I'll be using the "*", "+", "-" and "/" operators, along with integers.

0 投票
5 回答
7147 浏览

tokenize - Smalltalk,换行符

有人知道smalltalk中字符串的换行符是什么吗?

我正在尝试将字符串拆分为单独的行,但我无法弄清楚 smalltalk 中的换行符是什么。

IE。

我可以根据任何字母或符号分割一行,但我不知道换行符是什么。

好的,这就是我如何根据逗号拆分字符串,但我不能根据新行来做。

0 投票
2 回答
5492 浏览

php - 单词之间没有空格的语言(例如亚洲)中的分词?

我想让 MySQL 全文搜索与日文和中文文本以及任何其他语言一起工作。问题是这些语言以及可能的其他语言通常在单词之间没有空格。当您必须键入与文本中相同的句子时,搜索就没有用了。

我不能只在每个字符之间留一个空格,因为英语也必须工作。我想用 PHP 或 MySQL 解决这个问题。

我可以配置 MySQL 来识别应该是它们自己的索引单元的字符吗?是否有可以识别这些字符的 PHP 模块,所以我可以在它们周围放置空格作为索引?

更新

部分解决方案:

这使得至少有一些我需要特别对待的字符组成了一个字符类。我可能应该提一下,对索引文本进行调整是可以接受的。

有谁知道我需要在周围插入空格的所有字符范围?

此外,必须有更好的、可移植的方式来表示 PHP 中的这些字符吗?Literal Unicode 中的源代码并不理想;我不会认出所有的字符;它们可能无法在我必须使用的所有机器上渲染。

0 投票
1 回答
2880 浏览

python - 如何使用未终止的多行注释处理标记化错误(python 2.6)

以下示例代码:

导致以下触发:

关于这种行为的一些问题:

  1. 我应该在这里捕获并“选择性地”忽略 tokenize.TokenError 吗?还是我应该停止尝试从不合规/不完整的代码生成令牌?如果是这样,我将如何检查?
  2. 此错误(或类似错误)是否由未终止的文档字符串以外的任何内容引起?
0 投票
4 回答
56078 浏览

java - Java 中的分词器、停用词删除、词干提取

我正在寻找一个类或方法,该类或方法需要包含 100 多个单词的长字符串并进行标记,删除停用词和词干以在 IR 系统中使用。

例如:

“大肥猫,对袋鼠说‘我认识的最有趣的人’……”

分词器将删除标点符号并返回一个ArrayList单词

停用词去除器会去除“the”、“to”等词

词干分析器会减少每个单词的“词根”,例如“最有趣”会变得有趣

提前谢谢了。

0 投票
6 回答
1794 浏览

c - C 中字符串标记化函数的复杂性

为了复习我的 C,我正在编写一些有用的库代码。在阅读文本文件时,拥有一个方便的标记化功能总是有用的,它可以完成大部分繁重的工作(循环strtok不方便且危险)。

当我编写这个函数时,我对它的复杂性感到惊讶。说实话,我几乎确信它包含错误(特别是在分配错误的情况下内存泄漏)。这是代码:

这是简单的用法:

哦,还有strdup

关于tokenize函数代码的几点注意事项:

  1. strtok有覆盖其输入字符串的不礼貌习惯。为了保存用户的数据,我只在输入的副本上调用它。副本是使用 获得的strdup
  2. strdup然而,它不是 ANSI-C,所以我不得不写一个
  3. 数组随着toks动态增长realloc,因为我们事先不知道会有多少令牌。初始大小为 2 仅用于测试,在实际代码中我可能会将其设置为更高的值。它也会返回给用户,用户必须在使用后释放它。

  4. 在所有情况下,都特别注意不要泄漏资源。例如,如果realloc返回 NULL,它将不会在旧指针上运行。旧指针将被释放,函数返回。返回时没有资源泄漏tokenize(除非在返回给用户的数组在使用后必须释放的名义情况下)。

  5. Agoto用于更方便的清理代码,根据在某些情况下可能很好的哲学(这是一个很好的例子,恕我直言)goto

以下函数可以帮助在单个调用中进行简单的释放:

我真的很想与 SO 的其他用户讨论此代码。有什么可以做得更好的?你会为这样的分词器推荐一个不同的接口吗?解除分配的负担是如何从用户那里承担的?代码中是否存在内存泄漏?

提前致谢

0 投票
3 回答
4370 浏览

parsing - 在 Scala 中进行文本解析

我正在制作一个将在 Scala 中解析命令的应用程序。命令的一个示例是:

所以计划是让一个非常聪明的解析器将行分开并识别命令部分以及字符串中存在对时间的引用这一事实。

一般来说,我需要在 Scala 中制作一个标记器。所以我想知道我的选择是什么。我熟悉正则表达式,但我也计划制作类似 SQL 的搜索功能:

而且我觉得正则表达式将不灵活地执行具有很多变化的命令。这让我想到了实现某种语法。

在 Scala 中,我在这方面有哪些选择?