Skip to content

Bug: When using version 1.1.1 to extracting Chinese text, char_interval is no longer empty, but it is not very accurate. #289

@leohuai

Description

@leohuai

Describe the overall issue and situation

When using version 1.1.1 to extracting Chinese text, char_interval is no longer empty, but it is not very accurate.

Expected behavior

An accurate char_interval is required.

Actual behavior

Based on the example, char_interval is no longer empty, but the content isn’t very accurate.
For example, in the following case, the "start_pos": 274 and "end_pos": 276 values are not the correct indices.
The range from 274 to 276 corresponds only to the word “每份”.

{
    "extraction_class": "营养成分",
    "extraction_text": "每份约200克,含548大卡热量,蛋白质21.56克,脂肪18.12克,碳水化合物75.7克,能提供充足能量,但营养均衡有所欠缺",
    "char_interval": {
        "start_pos": 274,
        "end_pos": 276
    },
    "alignment_status": "match_lesser",
    "extraction_index": 7,
    "group_index": 6,
    "description": null,
    "attributes": {
        "重量": "200克",
        "热量": "548大卡",
        "蛋白质": "21.56克",
        "脂肪": "18.12克",
        "碳水化合物": "75.7克",
        "营养评价": "营养均衡有所欠缺",
        "relation": [
            "蛋白质-->香辣鸡腿堡",
            "脂肪-->香辣鸡腿堡",
            "碳水化合物-->香辣鸡腿堡",
            "热量-->香辣鸡腿堡"
        ]
    }
}

Example Html and jsonl

html:
doc_ccddc2a9.html
jsonl:
doc_ccddc2a9.jsonl.txt

Code snippet

unicode_tokenizer = tokenizer.UnicodeTokenizer()

result = lx.extract(
    text_or_documents=input_text,
    prompt_description=prompt,
    examples=extract_example,
    config=model_config,
    fence_output=str_to_bool(os.getenv("LANG_EXTRACT_FENCE_OUTPUT"), default=True),
    use_schema_constraints=False,
    debug=str_to_bool(os.getenv("LANG_EXTRACT_DEBUG_MODE"), default=False),
    tokenizer=unicode_tokenizer,
    # resolver_params={"suppress_parse_errors": True}
)

Input Parameter

{
    "input_text": "肯德基香辣鸡腿堡是肯德基经典且受欢迎的汉堡产品。\n以下是其详细介绍:\n- **上市时间**:自20世纪90年代上市以来,凭借其独特的口味和口感,成为了消费者心中的经典之作。\n- **食材组成**:主要由10厘米的芝麻面包、整块无骨鸡腿肉、汉堡酱及生菜丝组成。面包松软,顶部有芝麻;鸡腿肉经特殊腌制,裹上混合了辣味鸡包裹料的裹面粉后烹炸,外皮酥脆,肉质鲜嫩多汁;生菜丝增添了清爽口感,汉堡酱则丰富了味道。\n- **口味特点**:香辣味浓郁,鸡腿肉的香辣与生菜的清爽相互搭配,口感层次丰富,能很好地刺激味蕾,给消费者带来满足感。\n- **营养成分**:每份汉堡约200克,含548大卡热量,其中蛋白质21.56克、脂肪18.12克、碳水化合物75.7克,能提供充足能量,但作为快餐食品,营养均衡方面有所欠缺。\n- **价格与套餐**:单点售价通常为16.5元/个,也常出现在超值套餐中,如28.8元的两件套,可搭配薯条、鸡米花等。此外,2023年还推出过创新款牛油果香辣鸡腿堡,单点售价18元,套餐32元。",
    "prompt": "从产品的描述信息中提取关键信息。\n必须包含:产品名称、产品上市时间、历史背景、制作工艺、产品特点、产品口味。\n除了必须包含的内容外,再加上你认为的其他重要的实体元素。\n同时在提取过程中,识别实体信息之间的关系,将他们的关系放到relation中",
    "model_id": "gpt-4.1-mini",
    "temperature": 0.3,
    "examples": [
        {
            "input_text": "肯德基原味鸡正式名称为吮指原味鸡,是肯德基最经典的招牌产品。\n以下是其详细介绍:\n- **历史背景**:1940年由肯德基创始人哈兰·山德士发明,自1987年肯德基进入中国起,吮指原味鸡就成为其招牌产品,深受消费者喜爱。\n- **制作工艺**:采用11种香料配方制成的独特炸鸡,秉持手工裹粉工艺,先将鸡肉用秘制香料腌制,然后进行两次手工裹粉,再放入压力炸锅中精准烹制,成就了皮酥肉嫩、骨香入味的经典滋味。\n- **产品特点**:最大的特点是皮酥肉嫩,骨香入味,能让消费者品尝到鸡肉的原汁原味。它富含碳水化合物、脂肪、蛋白质等营养成分,属于高热量、味道浓郁的美食。\n- **产品部位**:肯德基吮指原味鸡通常有三角、鸡胸、鸡翅三个部位可供选择。三角部位带骨带皮,肉质鲜嫩多汁;鸡胸部位肉质较瘦,口感相对紧实;鸡翅部位皮脆肉香,是很多消费者的心头好。",
            "example_datas": [
                {
                    "extraction_text": "吮指原味鸡",
                    "attributes_json": "{\"品牌\": \"肯德基\", \"产品类型\": \"食物\", \"产品分类\": \"招牌产品\", \"relation\": [\"吮指原味鸡-->肯德基\", \"吮指原味鸡-->食物\"]}",
                    "extraction_class": "产品名称"
                },
                {
                    "extraction_text": "1940年",
                    "attributes_json": "{\"产品发明人\": \"哈兰·山德士\", \"relation\": [\"吮指原味鸡-->哈兰·山德士\"]}",
                    "extraction_class": "产品上市时间"
                },
                {
                    "extraction_text": "1940年由肯德基创始人哈兰·山德士发明,自1987年肯德基进入中国起,吮指原味鸡就成为其招牌产品,深受消费者喜爱",
                    "attributes_json": "{\"进入中国时间\": \"1987年\", \"relation\": [\"1987年-->肯德基\", \"1987年-->中国\"]}",
                    "extraction_class": "历史背景"
                },
                {
                    "extraction_text": "采用11种香料配方制成的独特炸鸡,秉持手工裹粉工艺,先将鸡肉用秘制香料腌制,然后进行两次手工裹粉,再放入压力炸锅中精准烹制,成就了皮酥肉嫩、骨香入味的经典滋味",
                    "attributes_json": "{\"食物类型\": \"炸鸡\", \"制作特色\": \"手工裹粉\", \"使用工具\": \"压力炸锅\", \"relation\": [\"11种香料-->吮指原味鸡\", \"手工裹粉-->吮指原味鸡\", \"压力炸锅-->吮指原味鸡\"]}",
                    "extraction_class": "制作工艺"
                },
                {
                    "extraction_text": "皮酥肉嫩,骨香入味,能让消费者品尝到鸡肉的原汁原味。它富含碳水化合物、脂肪、蛋白质等营养成分,属于高热量、味道浓郁的美食",
                    "attributes_json": "{\"营养成分\": [\"碳水化合物\",\"脂肪\",\"蛋白质\"], \"食物特色\": \"皮酥肉嫩,骨香入味\", \"食物特征\": \"高热量\", \"relation\": [\"碳水化合物-->吮指原味鸡\", \"脂肪-->吮指原味鸡\", \"蛋白质-->吮指原味鸡\", \"高热量-->吮指原味鸡\" ]}",
                    "extraction_class": "产品特点"
                },
                {
                    "extraction_text": "肯德基吮指原味鸡通常有三角、鸡胸、鸡翅三个部位可供选择。三角部位带骨带皮,肉质鲜嫩多汁;鸡胸部位肉质较瘦,口感相对紧实;鸡翅部位皮脆肉香,是很多消费者的心头好",
                    "attributes_json": "{\"产品选择\": [\"三角\",\"鸡胸\",\"鸡翅\"], \"口味\": [\"鲜嫩多汁\",\"紧实\",\"皮脆肉香\"], \"食物特征\": \"高热量\", \"relation\": [\"碳水化合物-->吮指原味鸡\", \"脂肪-->吮指原味鸡\", \"蛋白质-->吮指原味鸡\", \"高热量-->吮指原味鸡\" ]}",
                    "extraction_class": "产品口味"
                }

            ]
        }
    ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions