问题标签 [text-processing]
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.
bash - 如何替换文本文件中的 ${} 占位符?
我想将“模板”文件的输出通过管道传输到 MySQL,该文件具有${dbName}
散布的变量。替换这些实例并将输出转储到标准输出的命令行实用程序是什么?
java - 如何在 Java 中识别文本文档的语言?
是否有现有的 Java 库可以告诉我字符串是否包含英语文本(例如,我需要能够区分法语或意大利语文本——该函数需要为法语和意大利语返回 false,对英语返回 true) ?
python - 从大型结构化文本文件中提取信息
我需要阅读一些大文件(从 50k 到 100k 行),这些文件以空行分隔的组为结构。每组以相同的模式“No.999999999 dd/mm/yyyy ZZZ”开始。这是一些示例数据。
No.813829461 16/09/1987 270
Tit.SUZANO PAPEL E CELULOSE SA (BR/BA)
CNPJ/CIC/N INPI : 16404287000155
Procurador: MARCELLO DO NASCIMENTONo.815326777 28/12/1989 351
Tit.SIGLA SISTEMA GLOBO DE GRAVACOES AUDIO VISUAIS LTDA (BR/RJ)
CNPJ/CIC/NºINPI : 34162651000108
Apres.: Nominativa ; Nat.: De Produto
Marca: TRIO TROPICAL
Clas.Prod/Serv: 09.40
*DEFERIDO CONFORME RESOLUÇÃO 123 DE 06/01/2006, PUBLICADA NA RPI 1829, DE 24/01/2006。
检察官:WALDEMAR RODRIGUES PEDRANo.900148764 11/01/2007 LD3
Tit.TIARA BOLSAS E CALÇADOS LTDA
Procurador: Marcia Ferreira Gomes
*Escritório: Marcas Marcantes e Patentes Ltda
*Exigência Formal não respondida Satisfatoriamente, Pedido de Registro de Marca thinkado inexistente, de acordo com Art。157 da LPI
*Protocolo da Petição de cumprimento de Exigência 正式:810080140197
我写了一些代码来相应地解析它。有什么我可以改进的,以提高可读性或性能?这是我到目前为止的内容:
algorithm - “绝对”字符串度量
我有一组巨大(但有限)的自然语言字符串。
我需要一种将每个字符串转换为数值的方法。对于任何给定的字符串,每次的值都必须相同。
两个给定的字符串越“不同”,两个对应的值应该越不同。它们越“相似”,不同的值应该越少。
我还不知道我需要的字符串之间差异的确切定义。反正没有自然语言解析。它可能应该类似于 Levenstein(但 Levenstein 是相对的,我需要绝对度量)。让我们从简单的事情开始。
尺寸更新
我很乐意接受多维(最好是 3d)向量而不是单个数值。
更新预期结果的正确性
正如在此处和此处正确指出的那样,从一个字符串到另一个字符串的距离是一个具有MAX(firstStringLength, secondStringLength)
维度的向量。一般来说,在不丢失一些信息的情况下减少维数是不可能的。
但是我不需要一个绝对的解决方案。我会满足于从 N 维字符串空间到我的 3D 空间的任何“足够好”的转换。
另请注意,我有有限数量的有限长度的字符串。(虽然字符串的数量相当大,大约 8000 万(10 GB),所以我最好选择一些单通道无状态算法。)
从扫描参考资料来看,我的印象是希尔伯特空间填充曲线可能对我有所帮助。看起来希尔伯特空间填充曲线的聚类特性分析文章讨论了一些接近我的问题的东西......
希尔伯特曲线方法的更新
- 我们将每个字符串映射到 N 维空间中的一个点,其中 N 是集合中字符串的最大长度。顺便说一句,字符串中的第 i 个字符代码可以用作这里的第 i 个坐标值吗?
- 我们通过该 N 维空间绘制一条希尔伯特曲线。
- 对于每个字符串,我们在曲线上取点,最接近字符串的坐标。该点的希尔伯特值(从曲线开始的长度)是我寻求的一维值。
- 如果我们需要 3D 值,我们在 3D 中绘制 Hilbert 曲线并选择匹配 Hilbert 值的点,如上所述。
这看起来对吗?这里的计算费用是多少?
arrays - 交换键和数组值对
我有一个这样布局的文本文件:
我想反转键(数字)和值(CSV)(它们由制表符分隔)来产生这个:
(请注意 2 如何不与 c 重复。)
我不需要这个确切的输出。输入中的数字是有序的,而值不是。必须对输出的键和值进行排序。
我怎样才能做到这一点?我可以访问标准的 shell 实用程序(awk、sed、grep...)和 GCC。如果需要,我可能可以获取其他语言的编译器/解释器。
mysql - 使用 SQL 确定文本字段的字数统计
我最近一直在研究一些数据库搜索功能,并希望获得一些信息,例如每个文档的平均单词(例如数据库中的文本字段)。到目前为止,我发现的唯一一件事(没有在数据库之外使用选择的语言进行处理)是:
这似乎可行*,但您还有其他建议吗?我目前正在使用 MySQL 4(希望尽快为这个应用程序迁移到版本 5),但我也对通用解决方案感兴趣。
谢谢!
* 我可以想象这是一种非常粗略的确定方法,因为它也不考虑内容中的 HTML 等。这对于这个特定项目来说没问题,但还有更好的方法吗?
更新:定义我所说的“更好”:更准确,执行更有效,或者更“正确”(易于维护,良好实践等)。对于我现有的内容,上面的查询速度足够快,并且对于这个项目来说是准确的,但我将来可能需要类似的东西(所以我问了)。
python - 从文件中删除行
我正在 unix 系统上进行一些文本处理。我可以访问这台机器上的命令行,它安装了 Python、Perl 和默认的文本处理程序、awk 等。
我有一个如下所示的文本文件:
它基本上是 3 行: ID ID 日期
我希望删除所有没有 2 个 ID 和日期的行。所以最终的结果会是这样的:
你们如何建议这样做?文本文件总共长约 30,000 行。
干杯
伊夫
perl - Perl:使用基于索引的方法循环输入行
这是 perl 中的初学者最佳实践问题。我是这种语言的新手。问题是:
如果我想处理程序的输出行,如何以特殊方式格式化 THE FIRST LINE?
我想到了两种可能:
1) 一个标志变量,一旦第一次执行循环就被设置。但它将针对每个周期进行评估。不好的解决方案
2) 基于索引的循环(如“for”)。然后我会在 i=1 中开始循环。这个解决方案要好得多。问题是我该怎么做?
我刚刚找到了使用 while ( <> ) 结构进行循环的代码。
在这里你可以看得更清楚:
请不要犹豫在这里更正任何代码,这是我的第一首 perl 诗。
谢谢!
scripting - 是否有清理 script(1) 工具输出的工具?
script(1)
是用于记录交互式终端会话的工具;默认情况下它写入文件transcript
。我的问题是我使用ksh93
具有 readline 功能的 ,因此脚本被各种终端转义序列弄乱了,重建实际执行的命令可能非常困难。更不用说流浪^M
者之类的了。
我正在寻找一种工具,它可以读取由 编写的脚本文件script
,删除所有垃圾,并重建 shell 认为它正在执行的内容,所以我有一些东西可以显示$PS1
和实际执行的命令。如果做不到这一点,我正在寻找关于如何编写这样一个工具的建议,最好是使用 terminfo 数据库中的知识,或者如果做不到,只使用 ANSI 转义序列。
一个查看 shell 历史的作弊,只要它真的有效,也是可以接受的。
c++ - 用整数替换字符串中的重复单词
我在使用 C++ 进行字符串操作时遇到问题。
规则:如果句子或段落中重复相同的“单词”,我希望它变成一个整数。
例子:
- 输入:
we prefer questions that can be answered, not just we discussed that.
- 输出:
1 prefer questions 2 can be answered, not just 1 discussed 2.