2017-07-27 59 views
0

我一直在思考和處理自制算法以從數據集中提取惡意軟件名稱。結果並不那麼有希望。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。

回答

1

您所描述的內容稱爲命名實體識別(NER)。有幾個開放源碼庫可用於NER,例如在此處找到的Stanford NLP NER系統https://nlp.stanford.edu/software/CRF-NER.html。這一切都在Java中。

如果你可以組合一個相當大的訓練集,你應該可以使用斯坦福的NER實現來訓練一個模型。

+0

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

+0

謝謝你,我會試試這個 – DevRj

+0

但是我想如果你能根據我在我的問題中給出的例子詳細說明一下 – DevRj