簡體   English   中英

NLP-使用spaCy在Python中提取文本

[英]NLP - text extraction in Python using spaCy

我使用Python和spaCy作為我的NLP庫。 我是NLP工作的新手,希望能提供一些指導,以便從文本中提取表格信息。 我的目標是找到凍結或不凍結哪種類型的費用。 任何指導將不勝感激。

 TYPE_OF_EXPENSE    FROZEN?       NOT_FROZEN?
  purchase order    frozen           null 
     capital        frozen           null
   consulting       frozen           null
business meetings   frozen           null
 external hires     frozen           null
       KM&L          null         not frozen
      travel         null         not frozen


import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(u'Non-revenue-generating purchase order expenditures will be frozen. All capital
         related expenditures are frozen effectively for Q4. Following spending categories
         are frozen: Consulting, (including existing engagements), Business meetings. 
         Please note that there is a hiring  freeze for external  hires, subcontractors 
         and  consulting services. KM&L expenditure will 
         not be frozen. Travel cost will not be on ‘freeze’.)

我的最終目標是將所有此表提取到excel文件中。 即使您能為上述幾個類別提供建議,我也將深表感謝。 提前非常感謝您。

幾個問題:類別是否已預定義,並且會保持這種方式嗎? 如果是這樣,您可以僅使用這些單詞來構建一個小的詞匯表並進行處理。 第二件事是首先進行基本的預處理,例如大小寫調整等。

然后使用某種類型的句子標記器將您的輸入分成多個句子。 完成此操作后,將這些句子拆分為標記,nltk將提供一個不錯的標記生成器,您可以使用它定義短語,以便將紐約標記為new_york,依此類推。 對每個句子進行標記后,如果您在句子中找到匹配的標記,則可以使用基於窗口的方法。在該句子中,您查找前后有4個標記,以找到凍結單詞的否定詞。 因此,對於一個句子,您可以獲得諸如

[All,capital,related,expenditures,are,frozen,effectively,for,Q4]

這會同時匹配凍結關鍵字和大寫關鍵字。 只需檢查凍結前后的窗口大小是否為負,如果發現凍結的標記大寫為False,否則將其標記為true,因為可以使用二進制true / false列輕松完成此操作。

如果您給出的示例是您工作中的常見示例,則可以將任務分解為以下步驟:

  1. 使用Spacy定義規則以描述句子的模式。 例如KM&L expenditure will not be frozen可以是[{"lower":{"REGEX": "^.*expenditure"}},{"lower":"not"}, {"LEMMA":"be"}, {"LOWER": "frozen"}] (我沒有對其進行測試,因此請相應地進行更改)。 您可能需要編寫盡可能多的規則。

  2. 使用NLTK Tokenize將段落分為句子( 請參閱示例

  3. 對於每個句子,請使用Spacy中基於規則的匹配

  4. 要提取TYPE_OF_EXPENSE ,請根據匹配的規則,通過對匹配語句中從前或后的字符進行計數來獲取子字符串KM&L 例如,在此句子中KM&L expenditure will not be frozen ,您可以從后面進行計數,因為規則中定義了expenditure will not be frozen ,並且字符串的長度是固定的。

希望這可以幫助。

暫無
暫無

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

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