2016-10-26 63 views
2

我只讀過關於CRF的理論,並希望在我的碩士論文中使用python crfsuite從配方中提取配料。每一個幫助表示讚賞。(python)crfsuite自定義功能函數

據我所知,我可以通過下面的圖片的形式向crfsuite提供訓練數據,其中w [0]提供當前單詞的身份,w [i]世界相對於i和pos [我]它的與我有關的詞性標籤。

training data format

然後crfsuite訓練自己的特色功能,建立在給定的屬性。

但我無法找到像「w [i]在字典中」這樣的自定義功能函數(例如配方成分字典)或「在句子中是否定」(例如「不「或」不「)。

在總體上是好的教程是值得讚賞的,因爲手冊(https://python-crfsuite.readthedocs.io/en/latest/http://www.chokkan.org/software/crfsuite/manual.html)不是從我的角度

回答

1

有了點初學者友好python-crfsuite(或sklearn-crfsuite)的訓練數據並不一定要在形式你已經描述過;單個訓練序列應該是{"feature_name": <feature_value>"}字典的列表,其中每個序列元素具有特徵(例如,對於句子中的標記)。功能不一定是單詞或POS標籤。還有一些其他支持的功能格式(請參閱http://python-crfsuite.readthedocs.io/en/latest)。

有關更完整的示例檢查https://github.com/TeamHG-Memex/sklearn-crfsuite/blob/master/docs/CoNLL2002.ipynb - 它使用自定義功能。

+0

我現在明白了,可以通過附加標籤來實現特徵功能。例如,當特徵函數以大寫字母開頭時,我可以爲每個單詞添加一個lebel UPPER_CASE或NOT_UPPER_CASE 從我的角度來看,文檔不太好。在閱讀理論後,我預計會覆蓋一些功能。這個標籤技巧很聰明,因爲它獨立於任何編程語言,但對於初學者來說我很聰明...... ^^ –