如何将NER模型的实体提取结果转换为DataFrame格式?
如何将NER模型输出转换为指定DataFrame格式
你可以通过以下步骤将NER模型的输出转换为目标DataFrame格式:
步骤说明
- 遍历每一条文本的NER识别结果,将实体转换为「标签-文本」的键值对字典
- 对每个样本缺失的目标字段,用
NA填充 - 使用
pandas将整理后的字典列表转换为DataFrame
完整代码示例
import pandas as pd # 假设这是你从NER模型得到的所有输出结果 ner_results = [ [('1131547', 'ID'), ('12/9/2019', 'Date'), ('USA', 'ShippingAddress')], [('567456', 'ID'), ('Hills', 'ShippingAddress')] ] # 定义目标DataFrame的列名 target_columns = ['ID', 'Date', 'ShippingAddress'] # 处理每个样本的结果,生成字典列表 data_rows = [] for entities in ner_results: # 构造{标签: 实体文本}的字典 ent_dict = {label: text for text, label in entities} # 填充缺失字段为'NA' row = {col: ent_dict.get(col, 'NA') for col in target_columns} data_rows.append(row) # 转换为DataFrame df = pd.DataFrame(data_rows) print(df)
输出结果
ID Date ShippingAddress 0 1131547 12/9/2019 USA 1 567456 NA Hills
如果你想直接遍历TEST_DATA生成结果,可使用以下代码:
import pandas as pd target_columns = ['ID', 'Date', 'ShippingAddress'] data_rows = [] for text, _ in TEST_DATA: doc = nlp(text) # 直接从doc.ents构造{标签: 文本}字典 ent_dict = {ent.label_: ent.text for ent in doc.ents} row = {col: ent_dict.get(col, 'NA') for col in target_columns} data_rows.append(row) df = pd.DataFrame(data_rows) print(df)
内容的提问来源于stack exchange,提问作者Arjun
相关产品推荐
相关产品推荐

