Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新词发现大规模预料处理速度好像比较慢? #14

Open
QI-charles opened this issue Jan 20, 2020 · 2 comments
Open

新词发现大规模预料处理速度好像比较慢? #14

QI-charles opened this issue Jan 20, 2020 · 2 comments

Comments

@QI-charles
Copy link

配置 8G内存,跑5W条预料(简历招聘文本),用了大概2小时。
还有请问新词发现列出的新词是按指标排序好的么?是什么指标排序的?词频或者聚合度还是其他指标?

@blmoistawinde
Copy link
Owner

分别回答两个问题:

  1. 速度慢的问题

算法基本是固定的,没有太多优化空间。可能的话,建议从数据层面优化速度,比如把这些语料按照行业/公司/岗位先分类,然后分别执行新词发现。因为算法的时间复杂度大约是平方级别的,分而治之可以提升效率,还可能为不同的维度提供不同的发现。

  1. 指标排序问题

目前没有默认进行排序,不过这里为发现的新词提供了多个指标,可以按照需要选择合适的指标排序。

对于new_words_info = ht.word_discover(para)得到的new_words_info,它是一个这样的dataframe:

          freq  left_ent  right_ent         agg     score
text                                                     
父亲    0.008442  1.033562   2.397895  118.454545  0.060068
看见    0.005372  1.747868   1.549826   69.098485  0.032588
我的    0.003837  1.332179   1.609438    4.431973  0.007299
了一    0.003070  1.039721   1.039721   14.849003  0.007480
他们    0.003070  1.039721   1.039721   21.186992  0.008465
桔子    0.003070  1.039721   1.386294  100.230769  0.014902
自己    0.003070  1.386294   1.386294  162.875000  0.018826
茶房    0.003070  1.386294   1.386294  325.750000  0.021388
不能    0.002302  1.098612   1.098612   34.901786  0.007805
北京    0.002302  1.098612   1.098612  156.360000  0.011100
走到    0.002302  1.098612   1.098612   29.613636  0.007444
送我    0.002302  1.098612   1.098612   26.591837  0.007208

其中第一列是词频,二三列是词语与上下文区别度的左右交叉熵,第四列是词语内部的聚合度,而第五列是上面几项指标的一个综合评分。

如要按照词频排序,则可以用new_words_info = new_words_info.sort_values(by='freq', ascending=False),再得到具体词语就是new_words = new_words_info.index.tolist()

不过,也许设置一个默认的排序标准确实会更易于使用,我会考虑在后面更新一个默认排序标准上去。

blmoistawinde added a commit that referenced this issue Jan 20, 2020
- 新词发现支持字符串列表输入(#13)
- 新词发现自动按照词频排序,标准可调(#14)
- 尝试添加API文档
@EmbolismSoil
Copy link

我看了一下,跑起来是单进程的,可以考虑多进程+共享内存或者用C++多线程重写一下?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants