簡體   English   中英

如何使用 Python NLP 從句子列表中提取特定單詞。 這些詞是醫療設備的零件

[英]How to extract particular word(s) from the list of sentences using Python NLP. These word(s) are Parts of Medical equipments

我想從句子列表中提取醫療設備零件名稱。 這些句子是對支持請求采取的記錄操作,其中可能包括更換零件或確認零件在錯誤的 state 中。

以下是例句——

  1. 發現兩邊的【某些設備部分】不工作。
  2. 將問題縮小到[某些設備部分]。
  3. 需要更換[某些設備部件]。
  4. 協助故障排除,發現[某些設備部件]很可能是壞的。
  5. [某些設備部分] 不會 go 下來,將訂購部分。

我想從上面的句子中提取“[Some device part]”。

我已經嘗試過的事情 - 首先,我使用情緒分析過濾了句子。 只考慮那些有負面情緒或其中有“替換”文本的人。

  1. 使用 NLTK,在定義的語法上使用 RegexpParser 進行 POS 標記 = "NP: {<VB. ><NN. >+<NN. >+|<VB. > <NN. >+}"
  2. 使用 Spacy,經過 POS 標記和依賴,基於動詞、名詞關系過濾 - ['dobj'] 中的 token.dep_ 和 token.pos_ == 'NOUN'

上面的方法給了我很多無意義的output。 請讓我知道是否有任何幫助。

聽起來您將從查看命名實體識別 (NER) 中受益。 我很好奇 SpaCy 是否能夠將這些作為 PRODUCT 實體挑選出來。

您可能需要將 Spacy命名實體識別訓練為 label 令牌作為“醫療設備”。 這樣,您可以根據 NER label 解析文本並定位設備。

這將要求您使用指定的醫療設備實體生成一些訓練數據。 通過查找 PRODUCT 實體可以跳過此步驟,但您可能會錯過實體,因為您的用例比通用產品的 spacy 被訓練檢測的更具體。

訓練 model 識別新的醫療設備實體后,您可以通過以下方式定位它們

import spacy
nlp = spacy.load('en_core_medicalner')
doc = nlp('some text')

for token in doc:
  if token.label_ == 'Medical Equipment':
    print('token {} is Medical Equipment'.format(token.text))

暫無
暫無

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

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