164 lines
4.1 KiB
Python
164 lines
4.1 KiB
Python
import textwrap
|
||
|
||
|
||
def get_ner_name_prompt(text: str) -> str:
|
||
"""
|
||
Returns a prompt that generates a mapping of original names/companies to their masked versions.
|
||
|
||
Args:
|
||
text (str): The input text to be analyzed for masking
|
||
|
||
Returns:
|
||
str: The formatted prompt that will generate a mapping dictionary
|
||
"""
|
||
prompt = textwrap.dedent("""
|
||
你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。
|
||
|
||
实体类别包括:
|
||
- 人名 (不包括律师、法官、书记员、检察官等公职人员)
|
||
- 英文人名
|
||
|
||
|
||
待处理文本:
|
||
{text}
|
||
|
||
输出格式:
|
||
{{
|
||
"entities": [
|
||
{{"text": "原始文本内容", "type": "人名"}},
|
||
{{"text": "原始文本内容", "type": "英文人名"}},
|
||
...
|
||
]
|
||
}}
|
||
|
||
|
||
|
||
请严格按照JSON格式输出结果。
|
||
|
||
""")
|
||
return prompt.format(text=text)
|
||
|
||
|
||
def get_ner_company_prompt(text: str) -> str:
|
||
"""
|
||
Returns a prompt that generates a mapping of original companies to their masked versions.
|
||
|
||
Args:
|
||
text (str): The input text to be analyzed for masking
|
||
|
||
Returns:
|
||
str: The formatted prompt that will generate a mapping dictionary
|
||
"""
|
||
prompt = textwrap.dedent("""
|
||
你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。
|
||
|
||
实体类别包括:
|
||
- 公司名称
|
||
- 英文公司名称
|
||
- Company with English name
|
||
- 公司名称简称
|
||
- 公司英文名称简称
|
||
|
||
|
||
待处理文本:
|
||
{text}
|
||
|
||
输出格式:
|
||
{{
|
||
"entities": [
|
||
{{"text": "原始文本内容", "type": "公司名称"}},
|
||
{{"text": "原始文本内容", "type": "英文公司名称"}},
|
||
{{"text": "原始文本内容", "type": "公司名称简称"}},
|
||
{{"text": "原始文本内容", "type": "公司英文名称简称"}},
|
||
...
|
||
]
|
||
}}
|
||
|
||
请严格按照JSON格式输出结果。
|
||
""")
|
||
return prompt.format(text=text)
|
||
|
||
|
||
def get_ner_address_prompt(text: str) -> str:
|
||
"""
|
||
Returns a prompt that generates a mapping of original addresses to their masked versions.
|
||
|
||
Args:
|
||
text (str): The input text to be analyzed for masking
|
||
|
||
Returns:
|
||
str: The formatted prompt that will generate a mapping dictionary
|
||
"""
|
||
prompt = textwrap.dedent("""
|
||
你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。
|
||
|
||
实体类别包括:
|
||
- 地址
|
||
|
||
|
||
待处理文本:
|
||
{text}
|
||
|
||
输出格式:
|
||
{{
|
||
"entities": [
|
||
{{"text": "原始文本内容", "type": "地址"}},
|
||
...
|
||
]
|
||
}}
|
||
|
||
请严格按照JSON格式输出结果。
|
||
""")
|
||
return prompt.format(text=text)
|
||
|
||
|
||
def get_ner_project_prompt(text: str) -> str:
|
||
"""
|
||
Returns a prompt that generates a mapping of original project names to their masked versions.
|
||
"""
|
||
prompt = textwrap.dedent("""
|
||
你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。
|
||
|
||
实体类别包括:
|
||
- 项目名
|
||
|
||
待处理文本:
|
||
{text}
|
||
|
||
输出格式:
|
||
{{
|
||
"entities": [
|
||
{{"text": "原始文本内容", "type": "项目名"}},
|
||
...
|
||
]
|
||
}}
|
||
|
||
请严格按照JSON格式输出结果。
|
||
""")
|
||
return prompt.format(text=text)
|
||
|
||
|
||
def get_ner_case_number_prompt(text: str) -> str:
|
||
"""
|
||
Returns a prompt that generates a mapping of original case numbers to their masked versions.
|
||
"""
|
||
prompt = textwrap.dedent("""
|
||
你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。
|
||
|
||
实体类别包括:
|
||
- 案号
|
||
|
||
待处理文本:
|
||
{text}
|
||
|
||
输出格式:
|
||
{{
|
||
"entities": [
|
||
{{"text": "原始文本内容", "type": "案号"}},
|
||
...
|
||
]
|
||
}}
|
||
|
||
请严格按照JSON格式输出结果。
|
||
""")
|
||
return prompt.format(text=text) |