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

问题描述:

我一直在思考和处理自制算法以从数据集中提取恶意软件名称。结果并不那么有希望。java和nlp提取信息(恶意软件名称)和过滤

我的数据集是这样的:

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。

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

如果你可以组合一个相当大的训练集,你应该可以使用斯坦福的NER实现来训练一个模型。

+0

@devrj让我知道你是否需要更多信息。 – langkilde

+0

谢谢你,我会试试这个 – DevRj

+0

但是我想如果你能根据我在我的问题中给出的例子详细说明一下 – DevRj