【问题标题】:What's meaning of BOS and EOS in CRFSuite feature list and what is the role of them?CRFSuite 特性列表中的 BOS 和 EOS 是什么意思,它们的作用是什么?
【发布时间】:2015-09-08 09:24:35
【问题描述】:

在 python-crf 包网站的 NER(Named Entity Recognition) 示例中,我们将此函数视为特征生成器:

def word2features(sent, i):
word = sent[i][0]
postag = sent[i][1]
features = [
    'bias',
    'word.lower=' + word.lower(),
    'word[-3:]=' + word[-3:],
    'word[-2:]=' + word[-2:],
    'word.isupper=%s' % word.isupper(),
    'word.istitle=%s' % word.istitle(),
    'word.isdigit=%s' % word.isdigit(),
    'postag=' + postag,
    'postag[:2]=' + postag[:2],
]
if i > 0:
    word1 = sent[i-1][0]
    postag1 = sent[i-1][1]
    features.extend([
        '-1:word.lower=' + word1.lower(),
        '-1:word.istitle=%s' % word1.istitle(),
        '-1:word.isupper=%s' % word1.isupper(),
        '-1:postag=' + postag1,
        '-1:postag[:2]=' + postag1[:2],
    ])
else:
    features.append('BOS')

if i < len(sent)-1:
    word1 = sent[i+1][0]
    postag1 = sent[i+1][1]
    features.extend([
        '+1:word.lower=' + word1.lower(),
        '+1:word.istitle=%s' % word1.istitle(),
        '+1:word.isupper=%s' % word1.isupper(),
        '+1:postag=' + postag1,
        '+1:postag[:2]=' + postag1[:2],
    ])
else:
    features.append('EOS')

return features

您可以在此处查看已完成的教程: python-crfsuite NER example

正如您在添加有意义的特征(如 word.lower 和 ...-)后看到的那样,添加了两个特征。

features.append('EOS')

features.append('BOS')

我的问题是“BOS和EOS是什么意思,它们的作用是什么?”

【问题讨论】:

    标签: python named-entity-recognition crf


    【解决方案1】:

    这些代表“句子开头”和“句子结尾”。它们用于代替没有上一个/下一个词的单词的“上一个单词”和“下一个单词”功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2018-08-29
      • 2011-04-21
      • 2013-05-10
      • 2020-03-08
      • 2012-03-23
      • 2017-06-13
      相关资源
      最近更新 更多