11

有沒有辦法找到一個仍然有意義且至少包含一個主語,動詞和謂語/賓語的句子的所有子句?從句子中找到有意義的子句

例如,如果我們有一句話,例如「我將在下個月在奧斯汀的SXSW上進行關於NLP的研討會」。我們可以從這句話中提取以下有意義的子句:「我要去做一個研討會」,「我要去做一個關於NLP的研討會」,「我要在SXSW上做一個關於NLP的研討會」,「我打算在SXSW做一個研討會「,」我要在奧斯汀做一個研討會「,」我將在下個月做一個關於NLP的研討會「等。

請注意,沒有推論(例如「下個月將在SXSW舉辦NLP研討會」,雖然這是事實,但我們不需要這個問題作爲這個問題的一部分)。所有生成的句子都是給定句子的一部分。

我們該如何解決這個問題?我正在考慮爲訓練數據集中的每個句子創建帶有一組合法子句的帶註釋的訓練數據。然後編寫一些監督式學習算法來生成一個模型。

我對NLP和機器學習很陌生,所以如果你們可以提出一些解決這個問題的方法,那將是非常好的。

+0

在你的榜樣,你是否也想瑣碎subsentences像「我要」和「我」? 「我下個月要去奧斯汀」怎麼樣? –

+0

@阿德里安麥卡錫:「我下個月要去奧斯汀」會落在問題描述的「推斷句子」中。這些在這裏是不希望的,因爲它們意味着對輸入句子的語義處理,據我所知,這個想法僅僅是包括/排除原始文本中的合格介詞短語的各種組合。 – mjv

+1

@Adrian McCarthy:你提出了一個很好的觀點。 「我要去奧斯汀」的子句有些落在推斷句和「嚴格」分句之間的邊界上。但由於要求僅列出句子中嚴格存在的子句,因此我們將跳過此句。 –

回答

6

Hickl等人的文章標題爲"Using Discourse Commitments to Recognize Textual Entailment",它討論了對話語承諾(子句)的提取。這篇論文包含了他們的算法的描述,這個算法在某些層面上遵循規則。他們將它用於RTE,並且輸出中可能會有一些最低水平的扣除。文本簡化可能是一個相關的領域。

+0

感謝您的論文鏈接。這似乎很有趣,與我所問的問題有關。 –

2

一種方法是使用解析器,如PCFG。試圖訓練一個模型來檢測'subsentences'可能會受到數據稀疏的影響。另外,我懷疑你可以寫出一個非常乾淨明確的子句定義,如果你不能定義它,你不能讓註釋者爲它註釋。

10

您可以使用由Stanford CoreNLP提供的依賴關係解析器。 您的句子的合併輸出如下所示。

nsubj(going-3, I-1) 
xsubj(do-5, I-1) 
aux(going-3, am-2) 
root(ROOT-0, going-3) 
aux(do-5, to-4) 
xcomp(going-3, do-5) 
det(seminar-7, a-6) 
dobj(do-5, seminar-7) 
prep_on(seminar-7, NLP-9) 
prep_at(do-5, -11) 
prep_in(do-5, Austin-13) 
amod(month-15, next-14) 
tmod(do-5, month-15) 

句子輸出的最後5個是可選的。您可以刪除一個或多個對句子不重要的部分。
這些可選部分大多屬於介詞和修飾語,例如:prep_in,prep_do,advmod,tmod等。請參閱Stanford Dependency Manual

例如,如果你從輸出中刪除所有的修改,你會得到

我會在奧斯汀做NLP的研討會在SXSW。

+0

但它沒有給我所有可能的句子列表。我的意思是它可能隱藏在這個依賴輸出中,但我需要一個系統的方法來提取這些語句。 –

+3

當然它沒有。但是你可以提取所有可能的句子。 從列表**開始全部可選部件**。然後嘗試所有組合以刪除這些可選部分。 – Khairul

+0

有沒有保證它會*總是*生成句法和語義上有效的句子? –