paper2skills Playbook

Multilingual Named Entity Recognition (Universal NER v2)

Skill-Multilingual-NER-Universal-v2 · 08-知识图谱

causalexperimentknowledge_graphmulti_agent客服与VOC推荐与搜索知识图谱与RAG数据采集与治理MAS与智能体工程WF-C 客服分诊WF-D 选品扫描WF-E Review监控
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色选品负责人 / 运营负责人 · 数据分析师 · 供应链负责人
适用平台Amazon 品类体系 · 竞品 ASIN 网络分析
什么情况下用品类很多,不清楚品类间的关联,没法做系统性类目扩张规划;竞品矩阵太复杂,品牌/SKU/渠道理不清
成功是什么样的建立品类知识图谱,清晰看到哪些是入口品/引流品/利润品,指导下一步选品扩张方向
业务痛点
品类太多不知道先做哪个竞品关系理不清楚不知道用户买了奶瓶还会买什么类目扩张没有逻辑

1. 解决的问题

母婴出海电商的用户评论、客服对话、社交媒体内容涉及多语言(英语、德语、法语、西班牙语、日语等)。

2. 核心算法逻辑

核心问题:母婴出海电商的用户评论、客服对话、社交媒体内容涉及多语言(英语、德语、法语、西班牙语、日语等)。传统NER模型按语言独立训练,无法共享跨语言知识,且低资源语言(如荷兰语、波兰语)缺乏标注数据。

3. 业务应用场景

业务问题:Momcozy 在Amazon美国站、德国站、日本站销售,每月收到数万条多语言评论。需要从中自动抽取:品牌名、产品名、症状、年龄段、竞品提及等实体。

应用流程: 1. 实体类型定义: - BRAND(品牌):Momcozy, Medela, Philips Avent - PRODUCT(产品):breast pump, nursing bra, baby monitor - SYMPTOM(症状):mastitis, low milk supply, sore nipples - AGE_GROUP(年龄段):newborn, 3-month-old, toddler - COMPETITOR(竞品):Spectra, Willow, Elvie 2. 多语言模型加载:Universal NER v2 预训练模型 3. 零语言标注推理:德

预期产出: - 实体抽取F1:英语85%+,德语/法语75%+,日语70%+ - 标注成本:降低80%(无需每种语言单独标注) - 评论分析覆盖:从仅英语 → 全语言

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI:多语言VOC分析覆盖度从25%→100%,标注成本降低80%
  • 难度:⭐⭐☆☆☆(2/5)— HuggingFace现成模型,调用即可
  • 优先级:⭐⭐⭐⭐⭐(5/5)— 跨境电商刚需,零语言标注即可覆盖全市场

7. 代码模板

代码块数量:1 · 路径:未检测到

"""
Multilingual NER — Universal NER v2 inspired implementation
用于多语言文本的实体抽取与归一化
"""

import re
from collections import defaultdict


class MultilingualNER:
    """多语言实体识别器(简化版规则+词典实现)"""

    def __init__(self):
        # 实体词典(实际应用中使用预训练模型)
        self.entity_dict = {
            'BRAND': {
                'en': ['Momcozy', 'Medela', 'Philips Avent', 'Spectra', 'Willow', 'Elvie'],
                'de': ['Momcozy', 'Medela', 'Philips Avent', 'Nuk', 'Tommee Tippee'],
                'ja': ['Momcozy', 'Medela', 'Pigeon', 'Kaneson', 'Pipi'],
                'zh': ['Momcozy', '美德乐', '新安怡', '贝亲', '新贝']
            },
            'PRODUCT': {
                'en': ['breast pump', 'nursing bra', 'baby monitor', 'bottle warmer', 'diaper bag'],
                'de': ['Milchpumpe', 'Still-BH', 'Babyphone', 'Flaschenwärmer', 'Wickeltasche'],
                'ja': ['搾乳器', '授乳ブラ', 'ベビーモニター', '哺乳瓶ウォーマー', 'おむつポーチ'],
                'zh': ['吸奶器', '哺乳内衣', '婴儿监视器', '温奶器', ' diaper bag']
            },
            'SYMPTOM': {
                'en': ['mastitis', 'low milk supply', 'sore nipples', 'clogged duct', 'engorgement'],
                'de': ['Mastitis', 'Milchmangel', 'wunde Brustwarzen', 'Milchstau', 'Brustdrücken'],
                'ja': ['乳腺炎', '母乳不足', '乳首の痛み', '乳汁淤滞', '乳房の張り'],
                'zh': ['乳腺炎', '奶水不足', '乳头疼痛', '堵奶', '涨奶']
            },
            'AGE_GROUP': {
                'en': ['newborn', 'infant', '3-month-old', '6-month-old', 'toddler'],
                'de': ['Neugeborenes', 'Säugling', '3 Monate', '6 Monate', 'Kleinkind'],
                'ja': ['新生児', '乳児', '3ヶ月', '6ヶ月', '幼児'],
                'zh': ['新生儿', '婴儿', '3个月', '6个月', '幼儿']
            }
        }

    def detect_language(self, text):
        """简易语言检测"""
        # 实际应用中使用langdetect或fasttext
        if re.search(r'[一-鿿]', text):
            return 'zh'
        elif re.search(r'[぀-ゟ゠-ヿ]', text):
            return 'ja'
        elif re.search(r'[äöüß]', text):
            return 'de'
        else:
            return 'en'

    def extract_entities(self, text, lang=None):
        """
        抽取实体

        Args:
            text: 输入文本
            lang: 语言代码(可选,自动检测)

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。