java和nlp提取信息(恶意软件名称)和过滤

时间:2017-07-27 13:03:01

标签: java nlp filtering

我一直在考虑使用自制算法从数据集中提取恶意软件名称。结果并不那么有希望。

我的数据集如下所示:

torrentlocker payment site
win32/somoto.e potentially unwanted
financial services;malicious sources/malnets;personal sites
tv/video streams;piracy/copyright concerns;entertainment;malicious     sources/malnets
locky;malware;dark;stealing;infected

我希望输出的是:

torrentlocker payment site -> torrentlocker
win32/somoto.e potentially unwanted -> win32/somoto.e
financial services;malicious sources/malnets;personal sites -> null 
tv/video streams;piracy/copyright concerns;entertainment;malicious sources/malnets -> null 
locky;malware;dark;stealing;infected -> locky

一般来说,我认为可行的方法是提取含义的词语(版权,支付网站,不需要的......)。也许有一种简单的方法(比拼写在线词典更好)让所有单词都有意义,然后将它们与我的数据进行比较?我通过搜索发现NLP(自然语言处理)是一种方法。如果有更好的方法,我想提出一些建议,特别是我更喜欢使用Java。

1 个答案:

答案 0 :(得分:1)

您所描述的内容称为命名实体识别(NER)。有几个可用于NER的开源库,例如此处找到的Stanford NLPs NER系统https://nlp.stanford.edu/software/CRF-NER.html。它也都在Java中。

如果你能组合一个相当大的训练集,你应该能够使用斯坦福大学的NER实施训练模型。