问题标签 [agrep]

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 投票
1 回答
822 浏览

r - R多重模糊匹配agrep创建变量

R 的新手。我想通过创建一个变量(是/否)来创建一个测试,以检查名字或姓氏是否与电子邮件地址模糊匹配。如果是这样,请将“是”变量附加到该行。

数据示例:

我知道我需要使用 agrep。让我感到困惑的是如何告诉 R 检查 2 列(名字和姓氏)并且只检查该行。

谢谢 - 新手

0 投票
1 回答
107 浏览

windows - tre agrep 通过 gnuwin32 - newb 没有从 tre agrep 获得输出

诚然,我之前没有在 *nix 上使用过 agrep,所以这可能只是我的一个新手错误,但与其启动 *nix 盒子并在那里玩,我想我可以先问问这里的聪明人。

我在我的 Windows 机器上通过 gnuwin32 安装了 tre agrep - 二进制文件似乎正在工作 - 我得到了一些帮助输出和错误输出,但我似乎无法获得任何有意义的匹配输出。

我的测试文件:testing.txt

我唯一一次得到任何类型的输出是使用这一行:

输出:

“测试”的其他简单测试没有给我任何输出:

有人可以告诉我我做错了什么,或者更具体地说是如何做对吗?:)

谢谢!

0 投票
2 回答
271 浏览

linux - 更快的方式来同意?快速找到每一个字符不匹配

我正在寻找最快的方法来查找大文件中每个单词之间的每个字符不匹配。如果我有这个:

我想得到这样的东西:

目前我正在使用 agrep 但由于我的文件有数百万行长而且非常慢。每个单词都在自己的行上,并且它们都是相同数量的字符。我希望有一些我找不到的优雅的东西。谢谢你

编辑:单词仅由 5 个字符组成,ATCG 或 N,它们的长度不到 100 个字符。整个事情应该适合内存(<5GB)。每行一个单词,我想将它与其他单词进行比较。

Edit2:示例不正确现在已修复。

0 投票
2 回答
1628 浏览

r - 单个列表中的近似字符串匹配 - r

我在一个长列表中包含数千个名称的数据框中的列表。许多名称之间存在细微差异,这使它们略有不同。我想找到一种方法来匹配这些名称。例如:

我已经查看amatchstringdist函数以及agrep,但是这些都需要一个主名称列表,用于匹配另一个名称列表。就我而言,我没有这样的主列表,所以我想通过识别具有高度相似模式的名称来从数据中创建一个,这样我就可以查看它们并确定它们是否是同一个人(在许多他们是)。我想要一个新列中的输出,它可以帮助我知道这些是可能的匹配项,并且可能是基于 Levenshtein 距离或其他东西的某种相似性得分。也许是这样的:

这样的事情可能吗?

0 投票
1 回答
904 浏览

python - 在 R/Python 中部分匹配具有公共列(按字)的两个数据帧

我有两个数据框作为 csv 文件,其中df1的行数超过df2

Df1

Df2

我想通过匹配前两个/三个单词来进行部分匹配(近似/模糊匹配)。基本上输出将是这样的:

输出:

通过尝试完全匹配,我遗漏了一些行。我在 R 中尝试过agrep,但不知何故它不起作用并且模糊匹配很慢。请建议我在 R 或 python 中执行此操作。任何帮助表示赞赏!

0 投票
1 回答
333 浏览

r - 依次在一个变量中 agrep 名称,然后创建一个具有最短名称的新变量以进行紧密匹配

假设公司名称的字符向量以各种形式出现。这是一个10,000行数据框的小版本;它显示了所需的第二个向量(“two.names”)。

假设向量已按公司名称的字母顺序排序(我相信将最短的版本放在首位)。我如何使用agrep()从第一个公司名称开始,将其与第二个公司名称相匹配,然后 - 假设紧密匹配 - 将第一个公司名称添加到新列 (short.name) 中。然后,将其与第三个元素匹配,等等。所有 Carlson 变体都将匹配。

如果没有足够的匹配,比如当 R 遇到第一个 Carmody 时,从它开始并匹配到下一个元素,依此类推,直到下一个不匹配。

如果连续的公司之间没有匹配,R 应该继续直到找到匹配。

这个问题的答案是对整个向量和按年份分组的模糊匹配。 通过名称的模糊匹配(通过使用 R 的 agrep)创建唯一 ID 然而,似乎提供了可以解决我的问题的部分代码。本题使用stringdist(). 字符串列表

编辑:

下面,该对象matches是一个显示匹配项的列表,但我不知道告诉 R 的代码“获取第一个并将以下匹配项(如果有)转换为该名称并将该名称放入新变量列中。 "

0 投票
1 回答
56 浏览

regex - 如何将特定长度的数据帧的列与另一个具有某些要匹配的关键字的向量匹配?

我的数据框Expenses如下所示:

早些时候,我从 name列中识别出重复名称和模式的存在,并将其存储在向量NameVector中,如下所示。

我的问题是,如何将每个字符串模式Expenses$name与向量匹配并NameVector在主数据框中以分类方式打印它?

我尝试name使用每个可能的分隔符(空格、|、*、逗号等)拆分列strsplit(),以将名称的不同部分放入不同的列中,并尝试使用匹配模式,agrep()但我没有得到所需的输出。进一步反省数据,我注意到有前导空格并去掉了它们,仍然不知道为什么我没有得到如上所示的输出。


上表的csv:

并且已计算/标识为的名称向量

0 投票
2 回答
1609 浏览

r - 哪个 R 函数用于文本自动更正?

我有一个包含 2 列的 csv 文档,其中包含商品类别和商品名称。

前任:

我有另一个包含各种商品名称的 csv 文件。

前任:

我想要的输出是对商品名称进行标准化和分类,并将它们分类为相应的商品类别,如下所示:

步骤 1)我首先必须使用 NLTK(文本挖掘方法)并清理数据,以便将 "Pencil" 与 "Pencil-HB 02" 分开。

第 2 步)清理后,我必须使用近似字符串匹配技术,即 agrep() 来匹配模式“铅笔 *”或将“铅笔”更正为“铅笔”。

第 3 步)一旦纠正了模式,我必须进行分类。不知道怎么做。

这是我所考虑的。我从第 2 步开始,我只停留在第 2 步。我没有找到一个确切的方法来编码。有没有办法根据需要获得输出?如果是,请建议我可以继续使用的方法。

0 投票
6 回答
2346 浏览

mysql - SQL:匹配一个字符串模式,不管它的大小写,列中的空格

我需要在列中找到字符串的频率,而不管它的大小写和任何空格。

例如,如果我的字符串是My Tec Bits并且它们像这样出现在我的表中,如下所示:

然后,输出应该是6,因为删除了白人的步伐并且无论大小写如何,所有这些字符串都是相同的。

有什么grep()等价物SQLR

0 投票
0 回答
927 浏览

r - agrep 匹配如何工作?

agrep 函数给出了一些令人费解的结果,我想更好地理解它的行为。例如:

回报: [1] "abc" "abcde" "abcef"

但是“abcd”和“abcef”之间的距离是2。所以我不确定为什么会出现第三场比赛。

另外,我假设如果距离上限设置为 0,该函数将仅返回完全匹配:

但是,我得到[1] "abcde"了比赛

如果有人可以解释 agrep 中的匹配是如何工作的,那将非常有帮助。