簡體   English   中英

改進非結構化文本的解析

[英]Improving parsing of unstructured text

我正在將合同公告解析為列以捕獲公司,獎勵金額,授予項目的描述等。 可以在此處找到原始示例。

我使用正則表達式編寫了一個腳本來執行此操作,但隨着時間的推移,我必須考慮regexp方法作為長期解決方案的條件。 我一直在讀NLTK,似乎有兩種方法可以使用NLTK來解決我的問題:

  1. 使用RegexpParser表達式對公告進行分塊 - 如果我想要捕獲的兩個不同字段具有相同的句子結構,這可能是一個弱解決方案。
  2. 通過pos標簽獲取n個公告,標記化和運行n個公告,使用IOB格式手動標記我想要捕獲的公告的部分,然后使用這些標記的公告來訓練NER模型。 這里討論的方法

在我手動標記公告之前,我想衡量一下

  1. 那是一個合理的解決方案
  2. 如果存在可能對訓練我的模型有用的標記語料庫
  3. 知道准確度會隨着訓練數據大小而提高,我應該從多少手動標記的公告開始。

以下是我如何構建訓練集的示例。 如果有任何明顯的缺陷,請告訴我。

IOB_tagged_text

嘗試使用POS標簽獲取公司名稱和項目描述將是一個令人頭疼的問題。 絕對是NER路線。

Spacy有一個默認的英語NER模型,可以識別組織; 它可能會或可能不會對你有用,但它值得一試。

您對“獲獎項目的描述”有何期待? 通常NER會找到幾個令牌長的項目,但我可以想象一個描述是幾個句子。

對於標記,請注意您不必使用文本文件。 Brat是一個用於可視化標記文本的開源工具。

在此輸入圖像描述

你需要多少個例子取決於你的輸入,但想到大約一百個作為絕對最小值並從那里積累起來。

希望有所幫助!


關於項目描述,感謝你的例子我現在有了更好的主意。 看起來,贈款第一句中的語言在介紹項目描述方面非常規律: XYZ Corp has been awarded $XXX for [description here]

我從未見過用於任意短語的典型NER方法。 如果你已經有了標簽,那么嘗試和看到預測的結果是沒有害處的,但如果你有問題,還有另一種方法。

鑒於語言的規律性,解析器在這里可能是有效的。 您可以在這里在線試用Stanford Parser。 使用它的輸出(“解析樹”),你可以拉出動詞為“獎勵”的VP,然后在IN為“for”的地方拉出PP,這應該是你的尋找。 (大寫字母是Penn Treebank標簽 ; VP表示“動詞短語”,PP表示“介詞短語”,IN表示“介詞”。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM