You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何匹配希伯来语缩写词与对应全称并生成字典?

问题描述

上下文

我有如下段落:

text = """
בביהכנ"ס - בבית הכנסת דו"ח - דין וחשבון הת"ד -  התיקוני דיקנא
בגו"ר  - בגשמיות ורוחניות ה"א - ה' אלוקיכם התמי' - התמיהה
בהנ"ל - בהנזכר לעיל ה"א - ה' אלקיך ואח"כ - ואחר כך
בהשי״ת - בהשם יתברך ה"ה - הרי הוא / הוא הדין ואת"ה - ואיגוד תלמידי 
"""

该段落混合了希伯来语单词及其缩写词,单词包含引号("),例如:

[
    'בביהכנ"ס',
     'דו"ח',
     'הת"ד'
 ]

我已能用正则表达式(\b[\u05D0-\u05EA]*"\b[\u05D0-\u05EA]*\b)匹配所有这类单词,但无法将对应的全称(即未被匹配的部分)作为单独分组匹配。

需求

期望生成以缩写词为键、对应全称为值的字典,示例如下:

{
    'בביהכנ"ס': 'בבית הכנסת',
    'דו"ח': 'דין וחשבון',
    'הת"ד': 'התיקוני דיקנא'
}

尝试过的方案

我尝试用(\b[\u05D0-\u05EA]*"\b[\u05D0-\u05EA]*\b).*\1匹配单词及后续到该模式再次出现的内容,但未成功。请问如何实现匹配并生成目标字典?

注意:输出打印时可能为从左到右顺序,希伯来语实际应为从右到左,可参考Python中右至左语言处理方案。


解决方案

思路

核心是精准定位「缩写-全称」的成对结构:每一行内包含多组此类组合,通过正则匹配包含引号的缩写,同时捕获其对应的全称内容(直到下一个缩写或行尾)。

代码实现

import re

text = """
בביהכנ"ס - בבית הכנסת דו"ח - דין וחשבון הת"ד -  התיקוני דיקנא
בגו"ר  - בגשמיות ורוחניות ה"א - ה' אלוקיכם התמי' - התמיהה
בהנ"ל - בהנזכר לעיל ה"א - ה' אלקיך ואח"כ - ואחר כך
בהשי״ת - בהשם יתברך ה"ה - הרי הוא / הוא הדין ואת"ה - ואיגוד תלמידי 
"""

# 正则匹配每组缩写与对应的全称
pattern = re.compile(r'([\u05D0-\u05EA]+"[\u05D0-\u05EA]+)\s*-\s*([^-]+?)(?=\s+[\u05D0-\u05EA]+"|$)')

# 构建目标字典
abbrev_full_dict = {}
for match in pattern.finditer(text):
    abbrev = match.group(1).strip()
    full_name = match.group(2).strip()
    abbrev_full_dict[abbrev] = full_name

# 输出结果(若需处理希伯来语从右到左显示,可调整输出格式)
for key, val in abbrev_full_dict.items():
    print(f"{key}: {val}")

正则说明

  • ([\u05D0-\u05EA]+"[\u05D0-\u05EA]+):捕获包含引号的希伯来语缩写词
  • \s*-\s*:匹配分隔符-及其前后的任意空白字符
  • ([^-]+?):非贪婪匹配缩写后的全称内容,避免过度匹配到下一组内容
  • (?=\s+[\u05D0-\u05EA]+"|$):正向预查,确保全称结束于下一个缩写或行尾

内容的提问来源于stack exchange,提问作者MendelG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:25:36