到目前为止,我只读过关于CRF的理论,想在我的硕士论文中使用python crfsuite从配方中提取成分。感谢您的帮助。
据我所知,我可以以下图的形式向crfsuite提供训练数据,其中w[0]提供当前单词的标识,w[I]表示相对于I的世界,pos[I]表示相对于I的语音标记部分。
然后crfsuite根据给定的属性训练自己的特性函数。
但是我找不到一种方法来提供自定义的特性函数,比如“w[I]is in a dictionary”(例如配方成分词典)或“in the sentence is an negation”(例如“not”或“don't”)。
一般来说,好的教程是值得赞赏的,因为从我的观点来看,手册(https://python-crfsuite.readthedocs.io/en/latest/或http://www.chokkan.org/software/crfsuite/manual.html)对初学者并不友好
最佳答案
使用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-它使用自定义功能。