2014-01-30 56 views
2

我想在文件上運行一個內置分類器,然後運行我自己的分類器,合併結果。如何使用斯坦福NER運行多個分類器?

我如何使用斯坦福NER,特別是通過命令行來做到這一點?

我知道How do I include more than one classifiers when using Stanford named entity recogniser?,但這有些不同,因爲問題詢問了多個分類器,其中NERServer

看起來像我需要使用CoreNLP按順序運行多個NER模型...我可以不使用CoreNLP嗎?

說我有一個內容爲「快速棕色狐狸跳過美國懶狗」的文件。我運行內置的分類器之一,它發現「美」的位置,然後我跑我自己的,它發現「狐狸」和「狗」,結果應該是:

the quick brown <animal>fox</animal> jumped over the lazy <animal>dog</animal> in <location>America</location 
+0

所以你想斯坦福NER做合併? – Reactormonk

+0

我是這麼認爲的,是的 –

+0

我看不到它是如何從命令行運行的,但是如果我在代碼中執行它,我可能會設置兩條管道,每條管道都用自己的模型進行配置;爲每個模型創建一組重複的密鑰,因爲它們默認使用相同的密鑰;在文本示例上運行這兩個管道;閱讀每個結果列表(「CoreMap」);然後爲每個結果創建一個新的CoreMap。雖然,我沒有看到兩個獨立數據結構之上的單個數據結構的好處。 –

回答

0

所以,如果你在命令行中的一個命令這樣死心塌地的地方開始:

cat corpus.txt | tee `stanfordNER -options here > out1.xml` | myNERTagger -options here > out2.xml && diff out1.xml out2.xml | awk to do whatever merging you want here... 

但你可能會發現的是,這不是一個解決方案。你會想在一個小小的腳本中逐句地加入句子,呼叫pyner或類似的東西來掛鉤斯坦福標記器,然後是任何你自己構建的自定義標記器,在你走的時候合併差異。您的標記器的輸出格式將改變這看起來相當戲劇性。

相關問題