Regex-Coding: UTF-8 汉字

本文详细介绍了配置文件的解析过程,包括设置、语言范围定义和正则表达式的使用,展示了如何通过正则表达式实现文本过滤与匹配。
 1  # -*- coding: utf-8 -*- 
 2  """ 
 3  config.py 
 4   
 5  Created by Manabu Terada, CMScom on 2009-08-08. 
 6  """ 
 7  import re 
 8   
 9  STOP_WORD = [] 
10   
11  ## Setting, adding langs. 
12  rangetable = dict( 
13      # ascii=u"a-zA-Z0-9_", 
14      # digit=u"\d", 
15   
16      # U+AC00-D7AF       Hangul Syllables        ハングル音節文字 
17      hangul=u"\uAC00-\uD7AF", 
18   
19      # U+30A0-30FF       Katakana        片仮名 
20      # U+3040-309F       Hiragana        平仮名 
21      # kana=u"\u3040-\u30FF", 
22      # hiragana=u"\u3040-\u309F\u30FC", 
23      # katakana=u"\u30A0-\u30FF", 
24   
25      # U+4E00-9FFF     CJK Unified Ideographs  CJK統合漢字 
26      # U+3400-4DBF     CJK Unified Ideographs Extension A  CJK統合漢字拡張A 
27      # U+F900-FAFF     CJK Compatibility Ideographs    CJK互換漢字 
28      # ideo=u"\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF", 
29   
30      cj=u"\u3040-\u30FF\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF", 
31      thai=u"\u0E00-\u0E7F",  # U+0E00-0E7F Thai タイ文字 
32  ) 
33  ## End of setting. 
34   
35   
36  ## Splitting core. 
37  ps = rangetable.values() 
38  allp = u"".join(ps) 
39  glob_true = u"[^%s]([^%s]|[\*\?])*|" % (allp, allp) + u"|".join([u"[%s]+" % (x, )  for x in ps]) 
40   
41  glob_false = u"[^%s]+|" % allp + u"|".join(u"[%s]+" % x  for x in ps) 
42   
43  rx_all = re.compile(ur"[%s]" % allp, re.UNICODE) 
44  rx_U = re.compile(r"\w+", re.UNICODE) 
45  rxGlob_U = re.compile(r"\w+[\w*?]*", re.UNICODE) 
46   
47  rx_L = re.compile(r"\w+", re.LOCALE) 
48  rxGlob_L = re.compile(r"\w+[\w*?]*", re.LOCALE) 
49   
50  # pattern = re.compile(u"[a-zA-Z0-9_]+|[\uac00-\ud7af]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u30ff]+", re.UNICODE) 
51  # pattern_g = re.compile(u"[a-zA-Z0-9_]+[*?]*|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u30ff\uac00-\ud7af]+[*?]*", re.UNICODE) 
52   
53  pattern = re.compile(glob_false, re.UNICODE) 
54  pattern_g = re.compile(glob_true, re.UNICODE) 
55   
请帮我检查下面的langgraph代码:# !/usr/bin/env python # -*- coding: utf-8 -*- # 版权信息:华为技术有限公司,版本所有(C) 2025-2099 """ 功 能:问题推荐与联想-graph """ import re from langgraph.config import get_stream_writer from langgraph.graph import START, END from langgraph.graph import StateGraph from general_skill.application.sheet_search.node import ( extract_attributes_with_regex, business_search_get_param, llm_get_param, get_condition_prompt, llm_get_conditions, response_builder, process_question ) from general_skill.application.sheet_search.state import SheetSearchState def is_extraction_completed(state: SheetSearchState): """判断是否参数提取完毕""" writer = get_stream_writer() user_input = re.findall(r'[\w\u4e00-\u9fff]+', state.user_input) # 获取中文字符 user_input = "".join(user_input) extract_paras = "" for value in state.paras.values(): value_list = re.findall(r'[\w\u4e00-\u9fff]+', value) # 获取中文字符 extract_paras += "".join(value_list) if len(extract_paras) == len(user_input) or user_input in extract_paras: writer(f"\n正则方法,已经获取到全部参数") return "get_condition_prompt" else: return ["business_search_get_param", "llm_get_param"] def sheet_search_graph(checkpointer): builder = StateGraph(SheetSearchState) builder.add_node("process_question", process_question) builder.add_node("extract_attributes_with_regex", extract_attributes_with_regex) builder.add_node("business_search_get_param", business_search_get_param) builder.add_node("llm_get_param", llm_get_param) builder.add_node("get_condition_prompt", get_condition_prompt) builder.add_node("llm_get_conditions", llm_get_conditions) builder.add_node("response_builder", response_builder) # 添加边,但在每个节点内部判断是否需要执行 builder.add_edge(START, "process_question") builder.add_edge("process_question", "extract_attributes_with_regex") # 优先正则,然后判断其他节点 builder.add_conditional_edges( "extract_attributes_with_regex", is_extraction_completed, ["business_search_get_param", "llm_get_param", "get_condition_prompt"] ) builder.add_edge("business_search_get_param", "get_condition_prompt") builder.add_edge("llm_get_param", "get_condition_prompt") # 获取参数对应的条件值 builder.add_edge("get_condition_prompt", "llm_get_conditions") builder.add_edge("llm_get_conditions", "response_builder") builder.add_edge("response_builder", END) graph = builder.compile(checkpointer=checkpointer) return graph
最新发布
10-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值