在未设定广告词的情况下,如何在一堆词中,发现包括目标词在内的一些关键词。

2021-08-26 16:36:00 +08:00
 xingshu1990
首先解释一下,本人非程序员,大学也没读,所以不用提大学相关的知识,以及英文论文,只是业余时间玩 python,但是实际上技术连入门都算不上。

进入正题:
给定一块内容,未给定品牌词,未设定词性,但需要把这块内容给提取出来。
有点像违禁词屏蔽,又不像。

比如“超达网球”“宣达”“朗凯奇”“宅即丽”“3A 环保漆”,未设定词性的话,通过结巴提取到的词性是:超达是 v,宣达是 nr,朗凯奇会被分词为朗 /凯奇,宅即丽会被分为宅 /即 /丽,3A 环保漆 如果经过编程语言删除了数字、英文[0-9]、特殊符号[] [] ●等,那可能 3A 环保漆 ,只会分出环保漆或者环保 /漆,又分不出 3A 环保漆。

以上这个分词过程,语言用的是 python,jieba 分词,用的是.cut()分词,没有什么算法的东西。在 jieba 的 dict.txt 文件中,添加几个自定义的词和词性。

但是像上面提到的这些个品牌词,如果不自定义 dict.txt 很容易分偏,但是在 dict.txt 分别加入铝合金,铝 901 n,合 3 v,金 3 b,合金 3 n 后,分词工具可能依照 dict.txt 文件中的先后顺序,进行分词。

于是在 google 中搜索了, [ python 发现新词] ,
测试了链接中的内容:
https://www.guofei.site/2020/04/04/word_discovery.html

调试链接中的代码,如果我自己提供原始内容少,就提取不出新词。提供的原始内容字数较多,又不一定能提取到我想要的目标词。
而且 调试的时候 max_df=0.8, 和 min_df=5 这两个地方的数值 还要人工调整,因为不了解 NLP,不了解算法,当下去弄懂这块内容,就有点本末倒置了。

最终目的:
python 的技术呢,我也只是简单入门(也可以说未入门),相关代码呢,多数也是复制谷歌百度 github,也没使用函数式编程, [所以不要上来就丢论文,我也看不懂] 。目前只是想了解有没有什么比较方便一些的办法,能方便,在未设定广告关键词(品牌)的时候,隐藏常规词,只打印广告词。
711 次点击
所在节点    Python
2 条回复
xingshu1990
2021-08-26 16:46:14 +08:00
请忽略代码中的 不明所以的变量名,英语没及格过。
xingshu1990
2021-08-28 09:02:17 +08:00
emmmm 没有大佬来提供思路么?
我目前的个人思路是 删除 dict.txt 中的单个字的字+词性,手动维护图中的 word 表,通过下面的 not in 半自动 半人工眼睛核对。。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/798172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX