整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Python Flashtext 实现大数据集下高效的关键词查找和替换

常,我们使用Python 在文本中进行关键词查找或替换时,会使用 re 模块以正则的形式实现。在文本数量、文本内容、关键词数量较小时,该方法能够满足我们程序的功能、性能需要。但当在大规模的文本或者对大量关键词语料查找或者替换,re 实现方案的性能将成为瓶颈,本文我们将介绍一种新的关键词搜索和替换的算法:Flashtext 算法,它是一个高效的字符搜索和替换算法。

有多高效呢?如下,是通过随机生方式生成10000个单词组成的文本,我们分别在该文本中查找由 0, 500, 1000, 5000, 10000, 50000, 100000, 200000, 400000 个关键词组成的关键词库,我们来感受一下两者的性能差异:

我们发现随着关键词查询数量的增加,Flashtext 与 re 的时间消耗存在百倍乃至千倍以上的差异 。

为何存在这么大的差异呢?Flashtext 算法的时间复杂度不依赖于查找或替换的字符的数量。如,对于一个文档有 N 个字符,和一个有 M 个词的关键词库,那么时间复杂度就是 O(N) 。而正则匹配的时间复杂度是 O(M * N) 。这也是两者在性能上的差异随着关键词数量增多而拉大的原因。

因此,在一些大数据下的内容检索和替换,我们更倾向于选择 Flashtext 算法 ,比如,自然语言处理领域中数据清洗是一项必须的操作。经常涉及使用标准的关键词替换一些非标准的词,如,将Javascript替换成JavaScript。或者我们需要判断文本中是否存在JavaScript 关键词等等。

接下来,就让我们了解一下,如何使用Flashtext 实现关键词的查找和替换。


FlashText

Flashtext 算法主要分为三部分,我们接下来将对每一部分进行单独分析:

  1. 构建 Trie 字典
  2. 关键词搜索
  3. 关键词替换

构建 Trie 字典 (这部分不理解不影响我们使用Flashtext

Flashtext 是一种基于 Trie 字典数据结构和 Aho Corasick 的算法。它的工作方式是,首先它将所有相关的关键词作为输入,使用这些关键词建立一个 trie 字典。

为了构建 trie 字典,Flashtext 创建一个空的节点指向空字典。这个节点被用作所有关键词的起点。我们在字典中插入一个关键词。这个关键词中的下一个字符在本字典中作为关键词,并且这个指针需要再次指向一个空字典。这个过程不断重复,直到我们达到单词中的最后一个字符。当我们到达单词的末尾时,我们插入一个特殊的字符(eot)来表示词尾,如下:

starteot 是两个特殊的字符,用来定义关键词的边界,因此,也可知 Flashtext 只匹配完整的单词,这个 trie 字典就是我们后面要用来搜索和替换的数据结构。

我们举一个简单的例子,假设我们有一个包含3个单词的句子 “I like Python”,和一个有4个关键词的语料库 corpus = [Python,Java,J2ee,Ruby]。

Flashtext 算法将对于句子中的每一个单词,检查其是否在语料库中出现,如下:

如果句子 N 个单词,意味着需要做 N 次的循环操作。在这个例子中所需的时间步取决于句子中的单词数。

如上,因为将文本中的每个字符串进行匹配,由于这是一个字符匹配过程,因为 start 并没有和 l 相连,因此可以快速的跳过的I、like的匹配,这使得跳过缺失单词的过程变得非常快。

因此,FlashText 算法不受 corpus 中关键词数量的影响。


使用 Flashtext 进行搜索

我们对输入文本中的字符进行逐个遍历,当我们在文档中的字符 word 匹配到字典中的 <start>word<eot> 时,则认为这是一个完整匹配。我们将匹配到的字符序列所对应的标准关键词进行输出,具体如下:

代码示例如下:


使用 Flashtext 进行替换

Flashtext 对输入文本中的字符进行逐个遍历,Flashtext 先创建一个空的字符串,当字符序列中的 word 无法在 Trie 字典中找到匹配时,那么Flashtext 就简单的原始字符复制到返回字符串中。但当Flashtext 可以从 Trie 字典中找到匹配时,那么Flashtext 将把匹配到的字符的标准字符复制到返回字符串中。因此,返回字符串是输入字符串的一个副本,唯一的不同是替换了匹配到的字符序列,具体如下:

代码示例如下:


性能比对

在本文开始,我们首先介绍了使用 re模块与 flashtext 模块在不同数量的关键词语料库下,两者的耗时情况差异,具体性能比对实现的源码如下:

输出结果:


Flashtext 常用方法及参数说明

add_keyword

添加关键词。

语法

参数

  • keyword:检索的词。
  • clean_name:显示或要被替换为的词(默认keywords本身),如果匹配到keyword,则会返回clean_name。

示例

天要讲的主题是欧洲小站点关键词的查找。很多人觉得不懂小站点语言,一个字“难”,看也看不懂,翻译起来也很麻烦,索性直接放弃了小站点这几块肥肉,或者直接的用英文谷歌翻译上架,可是结果证明这样的效果并不好。

据了解,在过去三年中,德国在亚马逊全球市场中的比重不断上涨,成为了继美国之后亚马逊的第二大市场。亚马逊每年在德国的销售额达到了120亿美元,其中包括AWS服务销售额。随着市场比重上升,亚马逊应该会进一步加大对德国的投资。在法国,亚马逊是法国唯一一个受到半数以上消费者欢迎的网站,它也是法国十大电商里唯一一个非本地企业。西班牙、意大利站点也让很多卖家都尝到了甜头。

今天讲的重点是小站的标题和关键词的查找,其实查找方法和英文站点的查找方式差不多,但是小站点需要查找要更耐心更细心,它们的不同之处就在于以下几个方面:

对于不懂小站点市场语言的运营人员,google翻译是不能少的,在不懂语言的情况下,我们还是要善于利用翻译工具Google翻译。但这里有个误区,一开始大家都喜欢把一句句长句直接Copy去翻译,这样的效果是很差的,而且很多都翻译不了,直接翻译成了英文或者是不认识的字符,这样的话还不如直接英文的上架呢。

那我们该怎么做呢?

1.先要明确你的产品有哪些英文的表达方式,然后输入到谷歌翻译搜索框。翻译出来的词放到亚马逊搜索框去检索,通过亚马逊前台搜索量及展现的产品判断,展现量越高,且产品是相似的,说明这个词是一个比较精准的词汇。譬如说shower curtain,德语翻译为Duschvorhang, Waterproof shower curtain,德语谷歌翻译的是Wasserdicht Duschvorhang。

2. 通过标题寻找关键词。

比如我们输入Duschvorhang会发现有很多词语一直反复性的出现,把这些词提取出来,Duschvorhänge,Badezimmer,Vorhang,Anti-Schimmel,antibakteriell,Duschvorhänge, Duschvorhangringe,duschvorhang waschbar等等,通过标题和亚马逊搜索的下拉框,利用自动提示下拉框的词汇帮我们整合一些关键词短语,如下:

duschvorhang anti schimmel

duschvorhang antibakteriell

Waschbar duschvorhang

duschvorhang badewanne

duschvorhang badezimmer

duschvorhang für badewanne

Duschvorhangringe für Badezimmer

duschvorhang robust

Wasserabweisend Duschvorhänge

duschvorhang wasserabweisend

Duschvorhang 180 x 180

Duschvorhang 180 x 200

duschvorhang anti schimmel waschbar

Duschvorhänge Badewannenvorhang

3. 对于精细化上架的产品,我一直强调的当地的语言,那我们也可以从review比较多的listing中查询关键词。认真查看Q&A和review界面,不仅能让我们查找关键词,更能直接的了解客户关心的点,譬如是尺寸,是否掉色,柔软度,是否防水,是不是金属扣。把客户关心的点直接放入到我们的五点详情中,打消买家的顾虑,提高订单转化率。

比如Anti-Schimmel, Vorhänge, Duschvorhangringe Duschvorhang Wasser abweisend 等等

4. 对于FBA的产品,不仅仅是在亚马逊的平台上,我都要求自己去其他的小站点平台多去研究关键词,如

Ebay:http://www.ebay.de

http://www.amz123.com/亚马逊卖家之家,很多亚马逊的导航。

Wannenvorhang,

Badewannenvorhang

Badevorhang

Wannenvorhang

5. 当然缺少不了关键词工具,这里也推荐给大家

http://www.keywordtooldominator.com/k/amazon-keyword-tool这个不错,而且小站点词汇也比较多,但每天只能有三次机会。

https://www.scientificseller.com/zh/

www.scientificseller.com

https://app.wordtracker.com/

6.如果产品的展现量不高,优化的时候我们也可以尝试去站外找关键词。

比如说facebook以及http://www.dragon-guide.net/,龙之向导专业收录世界各个国家的外贸B2B网站、国际商业黄页等各种优秀的外贸网站及电子商务平台,提供简单便捷的外贸导航服务,可用于找关键词等等。

7.大家不要忘了,英文的核心关键词也要写在关键词栏里,可以提高展现量,很多小站点客户也常常用英语来搜索产品。

如:shower curtain

Waterproof show curtain

Show curtain for bathroom

当然,每个人的思路和方法都不同,能够多出单才是关键。希望以上的方法能对大家有帮助,祝大家订单多多,欧元也多多。(来源: CSS平台)

以上内容属作者个人观点,不代表雨果网立场!如有侵权,请联系我们。

电商的人都希望自己的产品尽快的卖出去,既然要卖出去那首先得让买家找到我们的产品,买家是怎么在平台上找到我们的产品然后下单的呢?比较多的就是用词汇搜索,然后找到需要的产品,那么这个搜索的词汇就是对我们产品很重要的关键词。下面就跟大家聊聊我在寻找产品关键词的一些思路。

1.在平台的搜索框中寻找关键词

这是最常见的找到我们Listing的方式。关键词的设置可以包含产品的属性、材质、特点、促销信息等。卖家可以在亚马逊搜索栏或者其他平台查找和自己产品相关的最近的热门关键词,也可以在平台的热销产品中寻找。

2.在竞争对手的Listing中寻找关键词

当你找到同款产品卖的比较好的竞争对手的Listing,细心的你一定会发现这个产品的另外的一种表达方式,那么说不定哪一个词就会成为推的词语。

这个只是在产品的标题中寻找,其实还可以扩展到对手的五点、长描述、Q&A和评论中寻找。

3.在广告的中寻找关键词

下面是手动广告中的系统推荐词汇:

其实我们还可以在建立的自动广告的报告中的“Customer Search Terms

”找到客户习惯搜索的词汇。

4.分类中寻找关键词

在前期大家千万不要忽视这些类目词汇,在新品引流中他们会起到一定的作用。

5.关键词工具寻找关键词

以下是常用的关键词工具:

希望这些可以对大家有用!!!(来源: CSS平台)

以上内容属作者个人观点,不代表雨果网立场!如有侵权,请联系我们。

有任何亚马逊问题,请关注微信号【cifnewspayoneer】

更多跨境进出口消息请点击:雨果网-跨境电商智能服务平台