Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Vowpal Wabbit进行命名实体识别似乎可以记忆训练数据_Python_Named Entity Recognition_Vowpalwabbit_Named Entity Extraction - Fatal编程技术网

Python 使用Vowpal Wabbit进行命名实体识别似乎可以记忆训练数据

Python 使用Vowpal Wabbit进行命名实体识别似乎可以记忆训练数据,python,named-entity-recognition,vowpalwabbit,named-entity-extraction,Python,Named Entity Recognition,Vowpalwabbit,Named Entity Extraction,我正在使用Vowpal Wabbit的python API来训练命名实体识别分类器,以便从短句中检测人员、组织和位置的名称。我已经整理了一份关于数据、模型如何训练以及评估语句中确定的实体的详细报告。培训数据来自和数据集 my Vowpal Wabbit SearchTask类的设置基于: 模型培训: vw = pyvw.vw(search=num_labels, search_task='hook', ring_size=1024) #num_labels = 3 ('B'eginning en

我正在使用Vowpal Wabbit的python API来训练命名实体识别分类器,以便从短句中检测人员、组织和位置的名称。我已经整理了一份关于数据、模型如何训练以及评估语句中确定的实体的详细报告。培训数据来自和数据集

my Vowpal Wabbit SearchTask类的设置基于:

模型培训:

vw = pyvw.vw(search=num_labels, search_task='hook', ring_size=1024)
#num_labels = 3 ('B'eginning entity, 'I'nside entity, 'O'ther)

sequenceLabeler = vw.init_search_task(SequenceLabeler)    
sequenceLabeler.learn(training_set)
该模型在训练数据中存在的命名实体精确字符串匹配上表现良好,但在使用相同结构的新示例中泛化较差。也就是说,分类器将从训练数据中识别句子中存在的实体,但当我只更改名称时,它们做得很差

sample_sentences = ['new york to las vegas on sunday afternoon', 
                    'chennai to mumbai on sunday afternoon',
                    'lima to ascuncion on sunday afternoon']
当运行分类器时,此操作的输出:

new york to las vegas on sunday afternoon
locations - ['new york', 'las vegas']

chennai to mumbai on sunday afternoon
locations - []

lima to ascuncion on sunday afternoon
locations - []
这表明,即使句子保持不变:“周日下午从a到b”,模型也无法识别新的位置,可能是因为它已经记住了训练示例

类似的结果适用于组织和人员分类。这些可以在我的网站上找到

我的问题是——

我在这里做错了什么? 模型是否有其他参数可以更改?或者我可以更好地使用现有的,如环大小和搜索任务? 您有什么建议可以提高模型的通用性吗? 您不使用地名录,也不使用任何其他文字特征,例如拼写或词缀,您的数据都是小写的,因此唯一有帮助的特征是单字母和双字母标识。毫不奇怪,你过度拟合了训练数据。从理论上讲,你可以使用人工命名的实体来增强训练数据,这些实体在周日遵循模式x到y,但是如果这有帮助的话,构建基于规则的分类器就更容易了

有许多参数,例如-l学习率和-Pass。请参阅和。 请注意,环_大小不会影响预测质量,您只需将其设置得足够高,以确保不会收到任何警告,即高于最长序列

见1

new york to las vegas on sunday afternoon
locations - ['new york', 'las vegas']

chennai to mumbai on sunday afternoon
locations - []

lima to ascuncion on sunday afternoon
locations - []