我正在开展一项分类任务,我们正在构建一个模型,用于检测文本范围内存在的实体类型(即注释)。可以使用数据集构建这些模型,其中每个实例由三个独立的文本变量表示:
数据集1:文本范围内的实体类型分类。
preContext | annotation | postContext | isOrganization | isPerson | isTime
.... | on July 12, 2011 | .... | 0 | 0 | 1
With over 8 | million invested | in Chrysler | 0 | 0 | 0
数据集2:边界检测 - “实体开始”
在第一个示例中,preContext和text之间的转换标记了组织类型实体的开始。在第二个示例中,preContext和text之间的转换中没有实体,因此所有因变量列都标记为零。
preContext | text
| isStartOfOrganization | isStartOfPerson | isStartOfTime
Private equity firm | Westbridge Capital could exit part or all of its stake in Hyderabad-based technology firm.
| 1 | 0 | 0
我一直在使用基本的NLP技术,如TF / IDF,N-gram,Tokenizers,Stemmers,POS Taggers,Stoplist来解决上述问题。但我现在真正想做的是尝试一些除了我尝试之外的新技术。这是我的问题,我无法找到任何有效的技术。如果你可以建议我这将是伟大的,即取得重大进一步收益的唯一方法是开始开箱即用的思考! 你能否告诉我一些解决上述问题的新技术?
答案 0 :(得分:1)
命名实体识别是规范序列标记任务之一。通常这样做的方式是将标签附加到句子中的每个单词,这与你接近但有点不同。如下所示:
/ NONE over / NONE 8 / NONE百万/无投资/无/无克莱斯勒/ BEGIN-COMPANY
周二/周二,先生/先生/人/先生,无/无技术/ BEGIN-COMPANY产品/公司公司/公司的首席执行官/未说......
我认为有一个单独的开始标记是常见的(BEGIN-COMPANY与COMPANY),因为它有助于学习NONE和类别之间的转换。你可以尝试两种方式。
您不希望将此视为一系列独立决策(分类),因为您做出的决策是相互依赖的。相反,使用特定的序列标记模型。如果您可以访问工具箱(许多可用),那么最通用且最容易获取的是条件随机字段,因为您可以为每个单词定义任意特征函数,而无需担心分布式假设。常见的特征是word-id,之前的标签id,单词是否大写,是否存在于各种专有名词列表中等等。然后,您可以从标记数据中学习模型并将其应用于新文本。 / p>