簡體   English   中英

使用 CoreNLP 將句子分割成子句

[英]Segmenting sentence into subsentences with CoreNLP

我正在解決以下問題:我想使用斯坦福 CoreNLP 將句子分成子句。 例句可以是:

"Richard is working with CoreNLP, but does not really understand what he is doing"

我現在希望將我的句子拆分為單個“S”,如下面的樹形圖所示:

在此處輸入圖片說明

我希望輸出是一個帶有單個“S”的列表,如下所示:

['Richard is working with CoreNLP', ', but', 'does not really understand what', 'he is doing']

我真的很感激任何幫助:)

我懷疑您正在尋找的工具是Tregex ,在此處的電源點或類本身的Javadoc中有更詳細的描述。

在您的情況下,我相信您正在尋找的模式只是S 所以,像這樣:

tregex.sh “S” <path_to_file>

其中文件是 Penn Treebank 格式的樹——也就是說,類似於(ROOT (S (NP (NNS dogs)) (VP (VB chase) (NP (NNS cats)))))

順便說一句:我相信片段“ ,但是”實際上並不是一個句子,正如您在圖中突出顯示的那樣。 相反,您突出顯示的節點包含了整個句子“ Richard 正在使用 CoreNLP,但並不真正理解他在做什么”。 然后,Tregex 會將整個句子打印為匹配項之一。 同樣,“並不真正理解什么”不是一個句子,除非它包含整個 SBAR:“不明白他在做什么”。

如果你只想要“葉子”句子(即一個沒有被另一個句子包含的句子),你可以嘗試更像這樣的模式:

S !>> S

注意:我還沒有測試這些模式——使用風險自負!

好的,我發現有人這樣做:

import requests

url = "http://localhost:9000/tregex"
request_params = {"pattern": "S"}
text = "Pusheen and Smitha walked along the beach."
r = requests.post(url, data=text, params=request_params)
print r.json()

有人知道如何使用其他語言嗎(我需要德語)?

暫無
暫無

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

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