├── .gitignore
├── README.md
├── data
└── word.dict
├── flowData
└── test.json
├── main.py
├── re_test.png
├── re_test.py
├── text_similarity_master
├── README.md
├── data
│ └── stopwords.txt
├── src
│ ├── DictBuilder.py
│ ├── DictUtils.py
│ ├── DocUtils.py
│ ├── Utils.py
│ ├── __init__.py
│ ├── features.py
│ ├── isSimilar.py
│ ├── launch.py
│ ├── launch_incre.py
│ ├── preprocess.py
│ ├── simhash_imp.py
│ ├── tokens.py
│ └── webcontent_filter.sh
└── test
│ └── test_token.py
└── 效果图.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 | /.idea
131 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 1、Python语言的应用 之 Demo_TFIDF_Simhash_Python
2 | python3 利用TF特征向量和sim hash指纹计算中文文本的相似度的示例
3 |
4 | # 2、更新信息
5 | 开发者:沙振宇(沙师弟专栏)
6 | 创建时间:2018-12-25
7 | 最后一次更新时间:2019-12-13
8 |
9 | CSDN博客地址——Python开发 之 利用TF特征向量和Simhash指纹计算中文文本的相似度的示例:
10 | https://shazhenyu.blog.csdn.net/article/details/103522732
11 | # 3、过程
12 | - 准备测试数据
13 | - 预处理读到的数据
14 | - 加载数据到Map中
15 | - 输入用户问题
16 | - 利用TF特征向量和Simhash指纹计算出 预处理的配置文件中的分值
17 | # 4、预先安装包
18 | 此项目需要先安装 jieba
19 | # 5、效果图
20 | 
21 |
--------------------------------------------------------------------------------
/data/word.dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShaShiDiZhuanLan/Demo_TFIDF_Simhash_Python/e9289fc211aa39f10a22d9d8a1a741323f6b50f8/data/word.dict
--------------------------------------------------------------------------------
/flowData/test.json:
--------------------------------------------------------------------------------
1 | {
2 | "1": {
3 | "nodeId": "1",
4 | "title": "确认身份",
5 | "nodeType": "Begin",
6 | "content": "您好,我是交通银行信用卡中心客服代表,请问您是{Cust_Name}{Sex}吗",
7 | "actionCode": "",
8 | "conditions": [
9 | {
10 | "conditionId": "184146",
11 | "title": "不是本人(不认识)",
12 | "typeId": "",
13 | "intention": "?",
14 | "keywords": "打错了||刚买的号||号码不*||没有||打错||答错||打戳||打绰||打措||打挫||打撮||答戳||答绰||答辍||答搓||答搓||答措||答挫||答撮||不认识||不认得",
15 | "labelData": "你打错号码了||你打的号码不对",
16 | "defaultFlag": "",
17 | "actionCode": "",
18 | "targetNodeId": "184733",
19 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u662f\\u672c\\u4eba\\uff08\\u4e0d\\u8ba4\\u8bc6\\uff09\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u6253\\u9519\\u53f7\\u7801\\u4e86||\\u4f60\\u6253\\u7684\\u53f7\\u7801\\u4e0d\\u5bf9\",\"keywords\":\"\\u6253\\u9519\\u4e86||\\u521a\\u4e70\\u7684\\u53f7||\\u53f7\\u7801\\u4e0d*||\\u6ca1\\u6709||\\u6253\\u9519||\\u7b54\\u9519||\\u6253\\u6233||\\u6253\\u7ef0||\\u6253\\u63aa||\\u6253\\u632b||\\u6253\\u64ae||\\u7b54\\u6233||\\u7b54\\u7ef0||\\u7b54\\u8f8d||\\u7b54\\u6413||\\u7b54\\u6413||\\u7b54\\u63aa||\\u7b54\\u632b||\\u7b54\\u64ae||\\u4e0d\\u8ba4\\u8bc6||\\u4e0d\\u8ba4\\u5f97\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184146\",\"nodeId\":\"1539166040523\",\"positionX\":190,\"positionY\":370}"
20 | },
21 | {
22 | "conditionId": "184140",
23 | "title": "质疑身份",
24 | "typeId": "",
25 | "intention": "?",
26 | "keywords": "你是谁||哪位||什么银行||你谁",
27 | "labelData": "请问您是哪位||你是哪位呀",
28 | "defaultFlag": "",
29 | "actionCode": "",
30 | "targetNodeId": "184185",
31 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u8eab\\u4efd\",\"procId\":\"\",\"labelData\":\"\\u8bf7\\u95ee\\u60a8\\u662f\\u54ea\\u4f4d||\\u4f60\\u662f\\u54ea\\u4f4d\\u5440\",\"keywords\":\"\\u4f60\\u662f\\u8c01||\\u54ea\\u4f4d||\\u4ec0\\u4e48\\u94f6\\u884c||\\u4f60\\u8c01\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184140\",\"nodeId\":\"1539167959001\",\"positionX\":50,\"positionY\":920}"
32 | },
33 | {
34 | "conditionId": "184157",
35 | "title": "不是本人(认识)",
36 | "typeId": "",
37 | "intention": "?",
38 | "keywords": "我是他.*||他是我.*||我是他哥||他是我哥||我是他朋友||我是他同事||他手机在我这||他出去了||去厕所了||去洗澡了||在吃饭",
39 | "labelData": "他手机在我这",
40 | "defaultFlag": "",
41 | "actionCode": "",
42 | "targetNodeId": "184234",
43 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u662f\\u672c\\u4eba\\uff08\\u8ba4\\u8bc6\\uff09\",\"procId\":\"\",\"labelData\":\"\\u4ed6\\u624b\\u673a\\u5728\\u6211\\u8fd9\",\"keywords\":\"\\u6211\\u662f\\u4ed6.*||\\u4ed6\\u662f\\u6211.*||\\u6211\\u662f\\u4ed6\\u54e5||\\u4ed6\\u662f\\u6211\\u54e5||\\u6211\\u662f\\u4ed6\\u670b\\u53cb||\\u6211\\u662f\\u4ed6\\u540c\\u4e8b||\\u4ed6\\u624b\\u673a\\u5728\\u6211\\u8fd9||\\u4ed6\\u51fa\\u53bb\\u4e86||\\u53bb\\u5395\\u6240\\u4e86||\\u53bb\\u6d17\\u6fa1\\u4e86||\\u5728\\u5403\\u996d\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184157\",\"nodeId\":\"1539166120653\",\"positionX\":350,\"positionY\":370}"
44 | },
45 | {
46 | "conditionId": "184148",
47 | "title": "听不清楚",
48 | "typeId": "",
49 | "intention": "?",
50 | "keywords": "((重|重新|再)(讲|说))||((说|讲).*(什么|啥))||((我|听).*(不懂|不明白))",
51 | "labelData": "我不明白||你再说一遍||你能解释一下吗||我好像不明白||我听不懂||我没听清||你说的啥意思||还是不明白||你能再说一遍||你可以在说一遍么||你能在重复一遍么||你在讲一遍||你可以在讲一遍么||我没听懂||我没听明白||我不理解||再解释清楚一点||再讲一遍吧||你说什么?没听清楚。||没听清楚你说什么||你说的啥呀||没。没。听。清楚。||你说啥?没听清楚||我听不懂你说什么",
52 | "defaultFlag": "",
53 | "actionCode": "",
54 | "targetNodeId": "184185",
55 | "nodeJsonFrontend": "{\"name\":\"\\u542c\\u4e0d\\u6e05\\u695a\",\"procId\":\"\",\"labelData\":\"\\u6211\\u4e0d\\u660e\\u767d||\\u4f60\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u80fd\\u89e3\\u91ca\\u4e00\\u4e0b\\u5417||\\u6211\\u597d\\u50cf\\u4e0d\\u660e\\u767d||\\u6211\\u542c\\u4e0d\\u61c2||\\u6211\\u6ca1\\u542c\\u6e05||\\u4f60\\u8bf4\\u7684\\u5565\\u610f\\u601d||\\u8fd8\\u662f\\u4e0d\\u660e\\u767d||\\u4f60\\u80fd\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bf4\\u4e00\\u904d\\u4e48||\\u4f60\\u80fd\\u5728\\u91cd\\u590d\\u4e00\\u904d\\u4e48||\\u4f60\\u5728\\u8bb2\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bb2\\u4e00\\u904d\\u4e48||\\u6211\\u6ca1\\u542c\\u61c2||\\u6211\\u6ca1\\u542c\\u660e\\u767d||\\u6211\\u4e0d\\u7406\\u89e3||\\u518d\\u89e3\\u91ca\\u6e05\\u695a\\u4e00\\u70b9||\\u518d\\u8bb2\\u4e00\\u904d\\u5427||\\u4f60\\u8bf4\\u4ec0\\u4e48\\uff1f\\u6ca1\\u542c\\u6e05\\u695a\\u3002||\\u6ca1\\u542c\\u6e05\\u695a\\u4f60\\u8bf4\\u4ec0\\u4e48||\\u4f60\\u8bf4\\u7684\\u5565\\u5440||\\u6ca1\\u3002\\u6ca1\\u3002\\u542c\\u3002\\u6e05\\u695a\\u3002||\\u4f60\\u8bf4\\u5565\\uff1f\\u6ca1\\u542c\\u6e05\\u695a||\\u6211\\u542c\\u4e0d\\u61c2\\u4f60\\u8bf4\\u4ec0\\u4e48\",\"keywords\":\"((\\u91cd|\\u91cd\\u65b0|\\u518d)(\\u8bb2|\\u8bf4))||((\\u8bf4|\\u8bb2).*(\\u4ec0\\u4e48|\\u5565))||((\\u6211|\\u542c).*(\\u4e0d\\u61c2|\\u4e0d\\u660e\\u767d))\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184148\",\"nodeId\":\"1539166759055\",\"positionX\":820,\"positionY\":710}"
56 | },
57 | {
58 | "conditionId": "184144",
59 | "title": "反馈用户忙",
60 | "typeId": "",
61 | "intention": "?",
62 | "keywords": "有点忙||上课||高速上||开车||在高速||在上课||在医院||开会||开车||忙着",
63 | "labelData": "忙着呢||这会有点忙",
64 | "defaultFlag": "",
65 | "actionCode": "",
66 | "targetNodeId": "184773",
67 | "nodeJsonFrontend": "{\"name\":\"\\u53cd\\u9988\\u7528\\u6237\\u5fd9\",\"procId\":\"\",\"labelData\":\"\\u5fd9\\u7740\\u5462||\\u8fd9\\u4f1a\\u6709\\u70b9\\u5fd9\",\"keywords\":\"\\u6709\\u70b9\\u5fd9||\\u4e0a\\u8bfe||\\u9ad8\\u901f\\u4e0a||\\u5f00\\u8f66||\\u5728\\u9ad8\\u901f||\\u5728\\u4e0a\\u8bfe||\\u5728\\u533b\\u9662||\\u5f00\\u4f1a||\\u5f00\\u8f66||\\u5fd9\\u7740\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184144\",\"nodeId\":\"1539168518862\",\"positionX\":1150,\"positionY\":920}"
68 | },
69 | {
70 | "conditionId": "184203",
71 | "title": "默认节点",
72 | "typeId": "",
73 | "intention": "?",
74 | "keywords": "",
75 | "labelData": "",
76 | "defaultFlag": "",
77 | "actionCode": "",
78 | "targetNodeId": "184185",
79 | "nodeJsonFrontend": "{\"name\":\"\\u9ed8\\u8ba4\\u8282\\u70b9\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184203\",\"nodeId\":\"1539166926484\",\"positionX\":1740,\"positionY\":710}"
80 | },
81 | {
82 | "conditionId": "184152",
83 | "title": "要求(稍后联系)",
84 | "typeId": "",
85 | "intention": "?",
86 | "keywords": "晚点打过来吧",
87 | "labelData": "晚点打过来吧||等会再联系||等会打过来",
88 | "defaultFlag": "",
89 | "actionCode": "",
90 | "targetNodeId": "184209",
91 | "nodeJsonFrontend": "{\"name\":\"\\u8981\\u6c42\\uff08\\u7a0d\\u540e\\u8054\\u7cfb\\uff09\",\"procId\":\"\",\"labelData\":\"\\u665a\\u70b9\\u6253\\u8fc7\\u6765\\u5427||\\u7b49\\u4f1a\\u518d\\u8054\\u7cfb||\\u7b49\\u4f1a\\u6253\\u8fc7\\u6765\",\"keywords\":\"\\u665a\\u70b9\\u6253\\u8fc7\\u6765\\u5427\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184152\",\"nodeId\":\"1539168545415\",\"positionX\":1260,\"positionY\":920,\"desirecont\":null}"
92 | },
93 | {
94 | "conditionId": "184192",
95 | "title": "质疑机器人",
96 | "typeId": "",
97 | "intention": "?",
98 | "keywords": "你.*是.*(人|机器)",
99 | "labelData": "你是机器人吗||你是人吗||你是真人吗||你是人工客服吗||你是机器人客服吗||你是男的么||你是女的么||你长得好看么||你有生命么||你不是人吗||你是不是人||你是不是机器人",
100 | "defaultFlag": "",
101 | "actionCode": "",
102 | "targetNodeId": "184185",
103 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u673a\\u5668\\u4eba\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u771f\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5de5\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u7537\\u7684\\u4e48||\\u4f60\\u662f\\u5973\\u7684\\u4e48||\\u4f60\\u957f\\u5f97\\u597d\\u770b\\u4e48||\\u4f60\\u6709\\u751f\\u547d\\u4e48||\\u4f60\\u4e0d\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u4e0d\\u662f\\u4eba||\\u4f60\\u662f\\u4e0d\\u662f\\u673a\\u5668\\u4eba\",\"keywords\":\"\\u4f60.*\\u662f.*(\\u4eba|\\u673a\\u5668)\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184192\",\"nodeId\":\"1539171360554\",\"positionX\":4680,\"positionY\":920,\"desirecont\":null}"
104 | },
105 | {
106 | "conditionId": "184201",
107 | "title": "是本人",
108 | "typeId": "",
109 | "intention": "?",
110 | "keywords": "是||事||试||时||使||市||十||式||士||四||似||死||思||寺||对||队||堆||兑||怼||对||对的||嗯||恩||摁||蒽",
111 | "labelData": "",
112 | "defaultFlag": "",
113 | "actionCode": "",
114 | "targetNodeId": "184313",
115 | "nodeJsonFrontend": "{\"name\":\"\\u662f\\u672c\\u4eba\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\\u662f||\\u4e8b||\\u8bd5||\\u65f6||\\u4f7f||\\u5e02||\\u5341||\\u5f0f||\\u58eb||\\u56db||\\u4f3c||\\u6b7b||\\u601d||\\u5bfa||\\u5bf9||\\u961f||\\u5806||\\u5151||\\u603c||\\u5bf9||\\u5bf9\\u7684||\\u55ef||\\u6069||\\u6441||\\u84bd\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184201\",\"nodeId\":\"1539166187054\",\"positionX\":480,\"positionY\":370}"
116 | },
117 | {
118 | "conditionId": "184138",
119 | "title": "不是本人",
120 | "typeId": "",
121 | "intention": "?",
122 | "keywords": "不是||不事||不试||不时||不使||不市||不十||不式||不士||不四||不似||不不死||不思||不寺||不对||不队||不堆||不兑||不怼||不对||不知道||不清楚||不知道||不",
123 | "labelData": "我这个是单位电话,别打了||我们是政府部门,别打了||这个是我们单位电话,不要再打了||我这个是公用电话||别再打了||我这是公用电话||不是本人",
124 | "defaultFlag": "",
125 | "actionCode": "",
126 | "targetNodeId": "184218",
127 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u662f\\u672c\\u4eba\",\"procId\":\"\",\"labelData\":\"\\u6211\\u8fd9\\u4e2a\\u662f\\u5355\\u4f4d\\u7535\\u8bdd\\uff0c\\u522b\\u6253\\u4e86||\\u6211\\u4eec\\u662f\\u653f\\u5e9c\\u90e8\\u95e8\\uff0c\\u522b\\u6253\\u4e86||\\u8fd9\\u4e2a\\u662f\\u6211\\u4eec\\u5355\\u4f4d\\u7535\\u8bdd\\uff0c\\u4e0d\\u8981\\u518d\\u6253\\u4e86||\\u6211\\u8fd9\\u4e2a\\u662f\\u516c\\u7528\\u7535\\u8bdd||\\u522b\\u518d\\u6253\\u4e86||\\u6211\\u8fd9\\u662f\\u516c\\u7528\\u7535\\u8bdd||\\u4e0d\\u662f\\u672c\\u4eba\",\"keywords\":\"\\u4e0d\\u662f||\\u4e0d\\u4e8b||\\u4e0d\\u8bd5||\\u4e0d\\u65f6||\\u4e0d\\u4f7f||\\u4e0d\\u5e02||\\u4e0d\\u5341||\\u4e0d\\u5f0f||\\u4e0d\\u58eb||\\u4e0d\\u56db||\\u4e0d\\u4f3c||\\u4e0d\\u4e0d\\u6b7b||\\u4e0d\\u601d||\\u4e0d\\u5bfa||\\u4e0d\\u5bf9||\\u4e0d\\u961f||\\u4e0d\\u5806||\\u4e0d\\u5151||\\u4e0d\\u603c||\\u4e0d\\u5bf9||\\u4e0d\\u77e5\\u9053||\\u4e0d\\u6e05\\u695a||\\u4e0d\\u77e5\\u9053||\\u4e0d\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184138\",\"nodeId\":\"1539167991304\",\"positionX\":160,\"positionY\":920}"
128 | },
129 | {
130 | "conditionId": "889075",
131 | "title": "转人工",
132 | "typeId": "",
133 | "intention": "?",
134 | "keywords": "人工",
135 | "labelData": "转人工||人工客服",
136 | "defaultFlag": "",
137 | "actionCode": "",
138 | "targetNodeId": "889077",
139 | "nodeJsonFrontend": "{\"name\":\"\\u8f6c\\u4eba\\u5de5\",\"procId\":\"\",\"key\":\"\",\"labelData\":\"\\u8f6c\\u4eba\\u5de5||\\u4eba\\u5de5\\u5ba2\\u670d\",\"keywords\":\"\\u4eba\\u5de5\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"889075\",\"nodeId\":\"1539771311299\",\"positionX\":1990,\"positionY\":200}"
140 | },
141 | {
142 | "conditionId": "184199",
143 | "title": "你好",
144 | "typeId": "",
145 | "intention": "?",
146 | "keywords": "",
147 | "labelData": "",
148 | "defaultFlag": "",
149 | "actionCode": "",
150 | "targetNodeId": "184185",
151 | "nodeJsonFrontend": "{\"name\":\"\\u4f60\\u597d\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184199\",\"nodeId\":\"1539165403799\",\"positionX\":1630,\"positionY\":200}"
152 | },
153 | {
154 | "conditionId": "184142",
155 | "title": "质疑目的",
156 | "typeId": "",
157 | "intention": "?",
158 | "keywords": "什么事||什么问题||你说||有事吗||啥事||怎么了||有什么事||什么事你说||你直接说事||咋了||砸了||杂了||渣了||炸了||扎了||眨了||闸了||札了||咂了||咋鸟||砸鸟||杂鸟||渣鸟||炸鸟||扎鸟||眨鸟||闸鸟||札鸟||干嘛||干吗||你有什么事||有什么问题",
159 | "labelData": "什么事你说||你直接说事||怎么了,有事吗||你有什么事||有什么问题||你是干嘛的",
160 | "defaultFlag": "",
161 | "actionCode": "",
162 | "targetNodeId": "184313",
163 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u76ee\\u7684\",\"procId\":\"\",\"labelData\":\"\\u4ec0\\u4e48\\u4e8b\\u4f60\\u8bf4||\\u4f60\\u76f4\\u63a5\\u8bf4\\u4e8b||\\u600e\\u4e48\\u4e86\\uff0c\\u6709\\u4e8b\\u5417||\\u4f60\\u6709\\u4ec0\\u4e48\\u4e8b||\\u6709\\u4ec0\\u4e48\\u95ee\\u9898||\\u4f60\\u662f\\u5e72\\u561b\\u7684\",\"keywords\":\"\\u4ec0\\u4e48\\u4e8b||\\u4ec0\\u4e48\\u95ee\\u9898||\\u4f60\\u8bf4||\\u6709\\u4e8b\\u5417||\\u5565\\u4e8b||\\u600e\\u4e48\\u4e86||\\u6709\\u4ec0\\u4e48\\u4e8b||\\u4ec0\\u4e48\\u4e8b\\u4f60\\u8bf4||\\u4f60\\u76f4\\u63a5\\u8bf4\\u4e8b||\\u548b\\u4e86||\\u7838\\u4e86||\\u6742\\u4e86||\\u6e23\\u4e86||\\u70b8\\u4e86||\\u624e\\u4e86||\\u7728\\u4e86||\\u95f8\\u4e86||\\u672d\\u4e86||\\u5482\\u4e86||\\u548b\\u9e1f||\\u7838\\u9e1f||\\u6742\\u9e1f||\\u6e23\\u9e1f||\\u70b8\\u9e1f||\\u624e\\u9e1f||\\u7728\\u9e1f||\\u95f8\\u9e1f||\\u672d\\u9e1f||\\u5e72\\u561b||\\u5e72\\u5417||\\u4f60\\u6709\\u4ec0\\u4e48\\u4e8b||\\u6709\\u4ec0\\u4e48\\u95ee\\u9898\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184142\",\"nodeId\":\"1539164515540\",\"positionX\":410,\"positionY\":200}"
164 | },
165 | {
166 | "conditionId": "184150",
167 | "title": "反馈重复联系",
168 | "typeId": "",
169 | "intention": "?",
170 | "keywords": "已经打过了||刚刚有人打过了",
171 | "labelData": "之前有人来过电话了||催了我很多次了||已经有人打过电话了||已经有人打过了||上次打过电话了||已经通知过了",
172 | "defaultFlag": "",
173 | "actionCode": "",
174 | "targetNodeId": "184207",
175 | "nodeJsonFrontend": "{\"name\":\"\\u53cd\\u9988\\u91cd\\u590d\\u8054\\u7cfb\",\"procId\":\"\",\"labelData\":\"\\u4e4b\\u524d\\u6709\\u4eba\\u6765\\u8fc7\\u7535\\u8bdd\\u4e86||\\u50ac\\u4e86\\u6211\\u5f88\\u591a\\u6b21\\u4e86||\\u5df2\\u7ecf\\u6709\\u4eba\\u6253\\u8fc7\\u7535\\u8bdd\\u4e86||\\u5df2\\u7ecf\\u6709\\u4eba\\u6253\\u8fc7\\u4e86||\\u4e0a\\u6b21\\u6253\\u8fc7\\u7535\\u8bdd\\u4e86||\\u5df2\\u7ecf\\u901a\\u77e5\\u8fc7\\u4e86\",\"keywords\":\"\\u5df2\\u7ecf\\u6253\\u8fc7\\u4e86||\\u521a\\u521a\\u6709\\u4eba\\u6253\\u8fc7\\u4e86\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184150\",\"nodeId\":\"1539170246579\",\"positionX\":2480,\"positionY\":920}"
176 | }
177 | ],
178 | "op": "",
179 | "reply": "",
180 | "labelData": "",
181 | "keywords": "",
182 | "nodeJsonFrontend": "{\"id\":\"1\",\"name\":\"\\u786e\\u8ba4\\u8eab\\u4efd\",\"nodeType\":0,\"isnode\":0,\"content\":\"\\u60a8\\u597d\\uff0c\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u5ba2\\u670d\\u4ee3\\u8868\\uff0c\\u8bf7\\u95ee\\u60a8\\u662f{Cust_Name}{Sex}\\u5417\",\"istable\":null,\"nodeId\":\"1539164343508\",\"positionX\":860,\"positionY\":90,\"className\":\"node-start\",\"removable\":false}"
183 | },
184 | "184185": {
185 | "nodeId": "184185",
186 | "title": "2 再次确认身份",
187 | "nodeType": "Keep",
188 | "content": "您好,我是交通银行信用卡中心的,想跟您核实一下请问您是{Cust_Name}{Sex}吗。||我是交通银行信用卡中心的客服代表,您是{Cust_Name}{Sex}吗。||我是交通银行的,请问是{Cust_Name}吗。\n",
189 | "actionCode": "",
190 | "conditions": [],
191 | "op": "",
192 | "reply": "",
193 | "labelData": "",
194 | "keywords": "",
195 | "nodeJsonFrontend": "{\"name\":\"2 \\u518d\\u6b21\\u786e\\u8ba4\\u8eab\\u4efd\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\uff0c\\u60f3\\u8ddf\\u60a8\\u6838\\u5b9e\\u4e00\\u4e0b\\u8bf7\\u95ee\\u60a8\\u662f{Cust_Name}{Sex}\\u5417\\u3002||\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\u5ba2\\u670d\\u4ee3\\u8868\\uff0c\\u60a8\\u662f{Cust_Name}{Sex}\\u5417\\u3002||\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u7684\\uff0c\\u8bf7\\u95ee\\u662f{Cust_Name}\\u5417\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184185\",\"nodeId\":\"1539227073215\",\"positionX\":930,\"positionY\":470}"
196 | },
197 | "184207": {
198 | "nodeId": "184207",
199 | "title": "31重复联系确认身份",
200 | "nodeType": "Keep",
201 | "content": "交通银行信用卡中心因为需要再次确认你是否为我行[=hang2]客户本人,还请您配合,请问您是{Cust_Name}{Sex}吗\n",
202 | "actionCode": "",
203 | "conditions": [],
204 | "op": "",
205 | "reply": "",
206 | "labelData": "",
207 | "keywords": "",
208 | "nodeJsonFrontend": "{\"name\":\"31\\u91cd\\u590d\\u8054\\u7cfb\\u786e\\u8ba4\\u8eab\\u4efd\",\"procId\":\"\",\"content\":\"\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u56e0\\u4e3a\\u9700\\u8981\\u518d\\u6b21\\u786e\\u8ba4\\u4f60\\u662f\\u5426\\u4e3a\\u6211\\u884c[=hang2]\\u5ba2\\u6237\\u672c\\u4eba\\uff0c\\u8fd8\\u8bf7\\u60a8\\u914d\\u5408\\uff0c\\u8bf7\\u95ee\\u60a8\\u662f{Cust_Name}{Sex}\\u5417\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184207\",\"nodeId\":\"1539165637428\",\"positionX\":1100,\"positionY\":280}"
209 | },
210 | "184209": {
211 | "nodeId": "184209",
212 | "title": "32稍后联系确认身份",
213 | "nodeType": "Normal",
214 | "content": "您好,为保障你的信息安全,这边为银行系统[w1]外呼自动拨号,晚些无法[w1]再次致电,请问您[w1]是{Cust_Name}[w1]{Sex}[w1]吗?",
215 | "actionCode": "",
216 | "conditions": [],
217 | "op": "",
218 | "reply": "",
219 | "labelData": "",
220 | "keywords": "",
221 | "nodeJsonFrontend": "{\"name\":\"32\\u7a0d\\u540e\\u8054\\u7cfb\\u786e\\u8ba4\\u8eab\\u4efd\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u4e3a\\u4fdd\\u969c\\u4f60\\u7684\\u4fe1\\u606f\\u5b89\\u5168\\uff0c\\u8fd9\\u8fb9\\u4e3a\\u94f6\\u884c\\u7cfb\\u7edf[w1]\\u5916\\u547c\\u81ea\\u52a8\\u62e8\\u53f7\\uff0c\\u665a\\u4e9b\\u65e0\\u6cd5[w1]\\u518d\\u6b21\\u81f4\\u7535\\uff0c\\u8bf7\\u95ee\\u60a8[w1]\\u662f{Cust_Name}[w1]{Sex}[w1]\\u5417\\uff1f\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":false,\"className\":\"node-process\",\"removable\":true,\"istable\":null,\"id\":\"184209\",\"nodeId\":\"1539165773781\",\"positionX\":1240,\"positionY\":280}"
222 | },
223 | "184215": {
224 | "nodeId": "184215",
225 | "title": "33hold再认",
226 | "nodeType": "Keep",
227 | "content": "您好,还在听吗。请问您是{Cust_Name}{Sex}吗。||请问还在吗。您是{Cust_Name}{Sex}吗。\n",
228 | "actionCode": "",
229 | "conditions": [],
230 | "op": "",
231 | "reply": "",
232 | "labelData": "",
233 | "keywords": "",
234 | "nodeJsonFrontend": "{\"name\":\"33hold\\u518d\\u8ba4\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u8fd8\\u5728\\u542c\\u5417\\u3002\\u8bf7\\u95ee\\u60a8\\u662f{Cust_Name}{Sex}\\u5417\\u3002||\\u8bf7\\u95ee\\u8fd8\\u5728\\u5417\\u3002\\u60a8\\u662f{Cust_Name}{Sex}\\u5417\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184215\",\"nodeId\":\"1539227109432\",\"positionX\":810,\"positionY\":470}"
235 | },
236 | "184218": {
237 | "nodeId": "184218",
238 | "title": "3是否认识",
239 | "nodeType": "Normal",
240 | "content": "是这样的,我是交通银行信用卡中心的,这个号码是{Cust_Name}{Sex}在我行[=hang2]登记的号码,请问您认识{Cust_Name}{Sex}吗。\n\n\n\n\n\n\n\n\n",
241 | "actionCode": "",
242 | "conditions": [
243 | {
244 | "conditionId": "184223",
245 | "title": "不认识",
246 | "typeId": "",
247 | "intention": "?",
248 | "keywords": "不认识||不认得||不认的||不人的||不知道||不\n",
249 | "labelData": "不认识他",
250 | "defaultFlag": "",
251 | "actionCode": "",
252 | "targetNodeId": "184733",
253 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u8ba4\\u8bc6\",\"procId\":\"\",\"labelData\":\"\\u4e0d\\u8ba4\\u8bc6\\u4ed6\",\"keywords\":\"\\u4e0d\\u8ba4\\u8bc6||\\u4e0d\\u8ba4\\u5f97||\\u4e0d\\u8ba4\\u7684||\\u4e0d\\u4eba\\u7684||\\u4e0d\\u77e5\\u9053||\\u4e0d\\n\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184223\",\"nodeId\":\"1539166086879\",\"positionX\":80,\"positionY\":370}"
254 | },
255 | {
256 | "conditionId": "184228",
257 | "title": "什么号码",
258 | "typeId": "",
259 | "intention": "?",
260 | "keywords": "什么号码",
261 | "labelData": "",
262 | "defaultFlag": "",
263 | "actionCode": "",
264 | "targetNodeId": "184302",
265 | "nodeJsonFrontend": "{\"name\":\"\\u4ec0\\u4e48\\u53f7\\u7801\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\\u4ec0\\u4e48\\u53f7\\u7801\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184228\",\"nodeId\":\"1539166240827\",\"positionX\":700,\"positionY\":370}"
266 | },
267 | {
268 | "conditionId": "184192",
269 | "title": "质疑机器人",
270 | "typeId": "",
271 | "intention": "?",
272 | "keywords": "你.*是.*(人|机器)",
273 | "labelData": "你是机器人吗||你是人吗||你是真人吗||你是人工客服吗||你是机器人客服吗||你是男的么||你是女的么||你长得好看么||你有生命么||你不是人吗||你是不是人||你是不是机器人",
274 | "defaultFlag": "",
275 | "actionCode": "",
276 | "targetNodeId": "184185",
277 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u673a\\u5668\\u4eba\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u771f\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5de5\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u7537\\u7684\\u4e48||\\u4f60\\u662f\\u5973\\u7684\\u4e48||\\u4f60\\u957f\\u5f97\\u597d\\u770b\\u4e48||\\u4f60\\u6709\\u751f\\u547d\\u4e48||\\u4f60\\u4e0d\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u4e0d\\u662f\\u4eba||\\u4f60\\u662f\\u4e0d\\u662f\\u673a\\u5668\\u4eba\",\"keywords\":\"\\u4f60.*\\u662f.*(\\u4eba|\\u673a\\u5668)\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184192\",\"nodeId\":\"1539171360554\",\"positionX\":4680,\"positionY\":920,\"desirecont\":null}"
278 | },
279 | {
280 | "conditionId": "184201",
281 | "title": "是本人",
282 | "typeId": "",
283 | "intention": "?",
284 | "keywords": "是||事||试||时||使||市||十||式||士||四||似||死||思||寺||对||队||堆||兑||怼||对||对的||嗯||恩||摁||蒽",
285 | "labelData": "",
286 | "defaultFlag": "",
287 | "actionCode": "",
288 | "targetNodeId": "184313",
289 | "nodeJsonFrontend": "{\"name\":\"\\u662f\\u672c\\u4eba\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\\u662f||\\u4e8b||\\u8bd5||\\u65f6||\\u4f7f||\\u5e02||\\u5341||\\u5f0f||\\u58eb||\\u56db||\\u4f3c||\\u6b7b||\\u601d||\\u5bfa||\\u5bf9||\\u961f||\\u5806||\\u5151||\\u603c||\\u5bf9||\\u5bf9\\u7684||\\u55ef||\\u6069||\\u6441||\\u84bd\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184201\",\"nodeId\":\"1539166187054\",\"positionX\":480,\"positionY\":370}"
290 | },
291 | {
292 | "conditionId": "184157",
293 | "title": "不是本人(认识)",
294 | "typeId": "",
295 | "intention": "?",
296 | "keywords": "我是他.*||他是我.*||我是他哥||他是我哥||我是他朋友||我是他同事||他手机在我这||他出去了||去厕所了||去洗澡了||在吃饭",
297 | "labelData": "他手机在我这",
298 | "defaultFlag": "",
299 | "actionCode": "",
300 | "targetNodeId": "184234",
301 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u662f\\u672c\\u4eba\\uff08\\u8ba4\\u8bc6\\uff09\",\"procId\":\"\",\"labelData\":\"\\u4ed6\\u624b\\u673a\\u5728\\u6211\\u8fd9\",\"keywords\":\"\\u6211\\u662f\\u4ed6.*||\\u4ed6\\u662f\\u6211.*||\\u6211\\u662f\\u4ed6\\u54e5||\\u4ed6\\u662f\\u6211\\u54e5||\\u6211\\u662f\\u4ed6\\u670b\\u53cb||\\u6211\\u662f\\u4ed6\\u540c\\u4e8b||\\u4ed6\\u624b\\u673a\\u5728\\u6211\\u8fd9||\\u4ed6\\u51fa\\u53bb\\u4e86||\\u53bb\\u5395\\u6240\\u4e86||\\u53bb\\u6d17\\u6fa1\\u4e86||\\u5728\\u5403\\u996d\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184157\",\"nodeId\":\"1539166120653\",\"positionX\":350,\"positionY\":370}"
302 | },
303 | {
304 | "conditionId": "184148",
305 | "title": "听不清楚",
306 | "typeId": "",
307 | "intention": "?",
308 | "keywords": "((重|重新|再)(讲|说))||((说|讲).*(什么|啥))||((我|听).*(不懂|不明白))",
309 | "labelData": "我不明白||你再说一遍||你能解释一下吗||我好像不明白||我听不懂||我没听清||你说的啥意思||还是不明白||你能再说一遍||你可以在说一遍么||你能在重复一遍么||你在讲一遍||你可以在讲一遍么||我没听懂||我没听明白||我不理解||再解释清楚一点||再讲一遍吧||你说什么?没听清楚。||没听清楚你说什么||你说的啥呀||没。没。听。清楚。||你说啥?没听清楚||我听不懂你说什么",
310 | "defaultFlag": "",
311 | "actionCode": "",
312 | "targetNodeId": "184798",
313 | "nodeJsonFrontend": "{\"name\":\"\\u542c\\u4e0d\\u6e05\\u695a\",\"procId\":\"\",\"labelData\":\"\\u6211\\u4e0d\\u660e\\u767d||\\u4f60\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u80fd\\u89e3\\u91ca\\u4e00\\u4e0b\\u5417||\\u6211\\u597d\\u50cf\\u4e0d\\u660e\\u767d||\\u6211\\u542c\\u4e0d\\u61c2||\\u6211\\u6ca1\\u542c\\u6e05||\\u4f60\\u8bf4\\u7684\\u5565\\u610f\\u601d||\\u8fd8\\u662f\\u4e0d\\u660e\\u767d||\\u4f60\\u80fd\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bf4\\u4e00\\u904d\\u4e48||\\u4f60\\u80fd\\u5728\\u91cd\\u590d\\u4e00\\u904d\\u4e48||\\u4f60\\u5728\\u8bb2\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bb2\\u4e00\\u904d\\u4e48||\\u6211\\u6ca1\\u542c\\u61c2||\\u6211\\u6ca1\\u542c\\u660e\\u767d||\\u6211\\u4e0d\\u7406\\u89e3||\\u518d\\u89e3\\u91ca\\u6e05\\u695a\\u4e00\\u70b9||\\u518d\\u8bb2\\u4e00\\u904d\\u5427||\\u4f60\\u8bf4\\u4ec0\\u4e48\\uff1f\\u6ca1\\u542c\\u6e05\\u695a\\u3002||\\u6ca1\\u542c\\u6e05\\u695a\\u4f60\\u8bf4\\u4ec0\\u4e48||\\u4f60\\u8bf4\\u7684\\u5565\\u5440||\\u6ca1\\u3002\\u6ca1\\u3002\\u542c\\u3002\\u6e05\\u695a\\u3002||\\u4f60\\u8bf4\\u5565\\uff1f\\u6ca1\\u542c\\u6e05\\u695a||\\u6211\\u542c\\u4e0d\\u61c2\\u4f60\\u8bf4\\u4ec0\\u4e48\",\"keywords\":\"((\\u91cd|\\u91cd\\u65b0|\\u518d)(\\u8bb2|\\u8bf4))||((\\u8bf4|\\u8bb2).*(\\u4ec0\\u4e48|\\u5565))||((\\u6211|\\u542c).*(\\u4e0d\\u61c2|\\u4e0d\\u660e\\u767d))\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184148\",\"nodeId\":\"1539166759055\",\"positionX\":820,\"positionY\":710}"
314 | },
315 | {
316 | "conditionId": "184146",
317 | "title": "不是本人(不认识)",
318 | "typeId": "",
319 | "intention": "?",
320 | "keywords": "打错了||刚买的号||号码不*||没有||打错||答错||打戳||打绰||打措||打挫||打撮||答戳||答绰||答辍||答搓||答搓||答措||答挫||答撮||不认识||不认得",
321 | "labelData": "你打错号码了||你打的号码不对",
322 | "defaultFlag": "",
323 | "actionCode": "",
324 | "targetNodeId": "184733",
325 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u662f\\u672c\\u4eba\\uff08\\u4e0d\\u8ba4\\u8bc6\\uff09\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u6253\\u9519\\u53f7\\u7801\\u4e86||\\u4f60\\u6253\\u7684\\u53f7\\u7801\\u4e0d\\u5bf9\",\"keywords\":\"\\u6253\\u9519\\u4e86||\\u521a\\u4e70\\u7684\\u53f7||\\u53f7\\u7801\\u4e0d*||\\u6ca1\\u6709||\\u6253\\u9519||\\u7b54\\u9519||\\u6253\\u6233||\\u6253\\u7ef0||\\u6253\\u63aa||\\u6253\\u632b||\\u6253\\u64ae||\\u7b54\\u6233||\\u7b54\\u7ef0||\\u7b54\\u8f8d||\\u7b54\\u6413||\\u7b54\\u6413||\\u7b54\\u63aa||\\u7b54\\u632b||\\u7b54\\u64ae||\\u4e0d\\u8ba4\\u8bc6||\\u4e0d\\u8ba4\\u5f97\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184146\",\"nodeId\":\"1539166040523\",\"positionX\":190,\"positionY\":370}"
326 | },
327 | {
328 | "conditionId": "184802",
329 | "title": "认识",
330 | "typeId": "",
331 | "intention": "?",
332 | "keywords": "是啊||对啊||认识||嗯||不认识||我饿了",
333 | "labelData": "",
334 | "defaultFlag": "",
335 | "actionCode": "",
336 | "targetNodeId": "184234",
337 | "nodeJsonFrontend": "{\"name\":\"\\u8ba4\\u8bc6\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\\u662f\\u554a||\\u5bf9\\u554a||\\u8ba4\\u8bc6||\\u55ef||\\u4e0d\\u8ba4\\u8bc6||\\u6211\\u997f\\u4e86\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184802\",\"nodeId\":\"1539226994850\",\"positionX\":1060,\"positionY\":370,\"desirecont\":\"\"}"
338 | }
339 | ],
340 | "op": "",
341 | "reply": "",
342 | "labelData": "",
343 | "keywords": "",
344 | "nodeJsonFrontend": "{\"name\":\"3\\u662f\\u5426\\u8ba4\\u8bc6\",\"procId\":\"\",\"content\":\"\\u662f\\u8fd9\\u6837\\u7684\\uff0c\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\uff0c\\u8fd9\\u4e2a\\u53f7\\u7801\\u662f{Cust_Name}{Sex}\\u5728\\u6211\\u884c[=hang2]\\u767b\\u8bb0\\u7684\\u53f7\\u7801\\uff0c\\u8bf7\\u95ee\\u60a8\\u8ba4\\u8bc6{Cust_Name}{Sex}\\u5417\\u3002\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":false,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184218\",\"nodeId\":\"1539227772291\",\"positionX\":80,\"positionY\":260}"
345 | },
346 | "184234": {
347 | "nodeId": "184234",
348 | "title": "4帮忙转告",
349 | "nodeType": "Normal",
350 | "content": "打扰了,这边交通银行需要找他核实些资料,方便的话帮忙转告一下,让他给交通银行信用卡中心回个电话4008833116,您看可以吗。\n\n\n\n\n\n\n\n\n\n\n\n",
351 | "actionCode": "",
352 | "conditions": [
353 | {
354 | "conditionId": "184192",
355 | "title": "质疑机器人",
356 | "typeId": "",
357 | "intention": "?",
358 | "keywords": "你.*是.*(人|机器)",
359 | "labelData": "你是机器人吗||你是人吗||你是真人吗||你是人工客服吗||你是机器人客服吗||你是男的么||你是女的么||你长得好看么||你有生命么||你不是人吗||你是不是人||你是不是机器人",
360 | "defaultFlag": "",
361 | "actionCode": "",
362 | "targetNodeId": "184294",
363 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u673a\\u5668\\u4eba\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u771f\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5de5\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u7537\\u7684\\u4e48||\\u4f60\\u662f\\u5973\\u7684\\u4e48||\\u4f60\\u957f\\u5f97\\u597d\\u770b\\u4e48||\\u4f60\\u6709\\u751f\\u547d\\u4e48||\\u4f60\\u4e0d\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u4e0d\\u662f\\u4eba||\\u4f60\\u662f\\u4e0d\\u662f\\u673a\\u5668\\u4eba\",\"keywords\":\"\\u4f60.*\\u662f.*(\\u4eba|\\u673a\\u5668)\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184192\",\"nodeId\":\"1539171360554\",\"positionX\":4680,\"positionY\":920,\"desirecont\":null}"
364 | },
365 | {
366 | "conditionId": "184266",
367 | "title": "会转告",
368 | "typeId": "",
369 | "intention": "?",
370 | "keywords": "可以||好的||没问题||行||OK||好\n",
371 | "labelData": "好的,我会给他讲的||我会转告给他的||我会跟他说的||他现在不在家,我晚点跟他说\n",
372 | "defaultFlag": "",
373 | "actionCode": "",
374 | "targetNodeId": "184741",
375 | "nodeJsonFrontend": "{\"name\":\"\\u4f1a\\u8f6c\\u544a\",\"procId\":\"\",\"labelData\":\"\\u597d\\u7684\\uff0c\\u6211\\u4f1a\\u7ed9\\u4ed6\\u8bb2\\u7684||\\u6211\\u4f1a\\u8f6c\\u544a\\u7ed9\\u4ed6\\u7684||\\u6211\\u4f1a\\u8ddf\\u4ed6\\u8bf4\\u7684||\\u4ed6\\u73b0\\u5728\\u4e0d\\u5728\\u5bb6\\uff0c\\u6211\\u665a\\u70b9\\u8ddf\\u4ed6\\u8bf4\\n\",\"keywords\":\"\\u53ef\\u4ee5||\\u597d\\u7684||\\u6ca1\\u95ee\\u9898||\\u884c||OK||\\u597d\\n\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184266\",\"nodeId\":\"1539166934804\",\"positionX\":1620,\"positionY\":710}"
376 | },
377 | {
378 | "conditionId": "184244",
379 | "title": "询问号码",
380 | "typeId": "",
381 | "intention": "?",
382 | "keywords": "",
383 | "labelData": "你们好吗多少||打你们哪个电话||号码再跟我说一遍||没听清楚你说的号码||号码是多少||号码你再说一下||客服电话是多少||你刚说的号码是多少||你刚说的号码是什么\n",
384 | "defaultFlag": "",
385 | "actionCode": "",
386 | "targetNodeId": "184282",
387 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u53f7\\u7801\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u4eec\\u597d\\u5417\\u591a\\u5c11||\\u6253\\u4f60\\u4eec\\u54ea\\u4e2a\\u7535\\u8bdd||\\u53f7\\u7801\\u518d\\u8ddf\\u6211\\u8bf4\\u4e00\\u904d||\\u6ca1\\u542c\\u6e05\\u695a\\u4f60\\u8bf4\\u7684\\u53f7\\u7801||\\u53f7\\u7801\\u662f\\u591a\\u5c11||\\u53f7\\u7801\\u4f60\\u518d\\u8bf4\\u4e00\\u4e0b||\\u5ba2\\u670d\\u7535\\u8bdd\\u662f\\u591a\\u5c11||\\u4f60\\u521a\\u8bf4\\u7684\\u53f7\\u7801\\u662f\\u591a\\u5c11||\\u4f60\\u521a\\u8bf4\\u7684\\u53f7\\u7801\\u662f\\u4ec0\\u4e48\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184244\",\"nodeId\":\"1539166597887\",\"positionX\":310,\"positionY\":710}"
388 | },
389 | {
390 | "conditionId": "184203",
391 | "title": "默认节点",
392 | "typeId": "",
393 | "intention": "?",
394 | "keywords": "",
395 | "labelData": "",
396 | "defaultFlag": "",
397 | "actionCode": "",
398 | "targetNodeId": "184699",
399 | "nodeJsonFrontend": "{\"name\":\"\\u9ed8\\u8ba4\\u8282\\u70b9\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184203\",\"nodeId\":\"1539166926484\",\"positionX\":1740,\"positionY\":710}"
400 | },
401 | {
402 | "conditionId": "184144",
403 | "title": "反馈用户忙",
404 | "typeId": "",
405 | "intention": "?",
406 | "keywords": "有点忙||上课||高速上||开车||在高速||在上课||在医院||开会||开车||忙着",
407 | "labelData": "忙着呢||这会有点忙",
408 | "defaultFlag": "",
409 | "actionCode": "",
410 | "targetNodeId": "184699",
411 | "nodeJsonFrontend": "{\"name\":\"\\u53cd\\u9988\\u7528\\u6237\\u5fd9\",\"procId\":\"\",\"labelData\":\"\\u5fd9\\u7740\\u5462||\\u8fd9\\u4f1a\\u6709\\u70b9\\u5fd9\",\"keywords\":\"\\u6709\\u70b9\\u5fd9||\\u4e0a\\u8bfe||\\u9ad8\\u901f\\u4e0a||\\u5f00\\u8f66||\\u5728\\u9ad8\\u901f||\\u5728\\u4e0a\\u8bfe||\\u5728\\u533b\\u9662||\\u5f00\\u4f1a||\\u5f00\\u8f66||\\u5fd9\\u7740\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184144\",\"nodeId\":\"1539168518862\",\"positionX\":1150,\"positionY\":920}"
412 | },
413 | {
414 | "conditionId": "184261",
415 | "title": "询问有什么事",
416 | "typeId": "",
417 | "intention": "?",
418 | "keywords": "你有什么事||有什么问题||啥事||",
419 | "labelData": "你有什么事||有什么问题",
420 | "defaultFlag": "",
421 | "actionCode": "",
422 | "targetNodeId": "184284",
423 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u6709\\u4ec0\\u4e48\\u4e8b\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u6709\\u4ec0\\u4e48\\u4e8b||\\u6709\\u4ec0\\u4e48\\u95ee\\u9898\",\"keywords\":\"\\u4f60\\u6709\\u4ec0\\u4e48\\u4e8b||\\u6709\\u4ec0\\u4e48\\u95ee\\u9898||\\u5565\\u4e8b||\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184261\",\"nodeId\":\"1539166860453\",\"positionX\":1220,\"positionY\":710}"
424 | },
425 | {
426 | "conditionId": "184255",
427 | "title": "你自己打电话",
428 | "typeId": "",
429 | "intention": "?",
430 | "keywords": "不行||我才不说||你们自己打电话||我不管\n",
431 | "labelData": "你们自己打电话\n",
432 | "defaultFlag": "",
433 | "actionCode": "",
434 | "targetNodeId": "184956",
435 | "nodeJsonFrontend": "{\"name\":\"\\u4f60\\u81ea\\u5df1\\u6253\\u7535\\u8bdd\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u4eec\\u81ea\\u5df1\\u6253\\u7535\\u8bdd\\n\",\"keywords\":\"\\u4e0d\\u884c||\\u6211\\u624d\\u4e0d\\u8bf4||\\u4f60\\u4eec\\u81ea\\u5df1\\u6253\\u7535\\u8bdd||\\u6211\\u4e0d\\u7ba1\\n\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184255\",\"nodeId\":\"1539166689653\",\"positionX\":700,\"positionY\":710}"
436 | },
437 | {
438 | "conditionId": "184258",
439 | "title": "询问银行",
440 | "typeId": "",
441 | "intention": "?",
442 | "keywords": "什么行||哪个行\n",
443 | "labelData": "你们是哪个银行||是哪个银行||什么银行\n",
444 | "defaultFlag": "",
445 | "actionCode": "",
446 | "targetNodeId": "184309",
447 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u94f6\\u884c\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u4eec\\u662f\\u54ea\\u4e2a\\u94f6\\u884c||\\u662f\\u54ea\\u4e2a\\u94f6\\u884c||\\u4ec0\\u4e48\\u94f6\\u884c\\n\",\"keywords\":\"\\u4ec0\\u4e48\\u884c||\\u54ea\\u4e2a\\u884c\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184258\",\"nodeId\":\"1539168562572\",\"positionX\":1390,\"positionY\":920}"
448 | },
449 | {
450 | "conditionId": "184253",
451 | "title": "看情况",
452 | "typeId": "",
453 | "intention": "?",
454 | "keywords": "知道了||再说吧||看情况\n",
455 | "labelData": "",
456 | "defaultFlag": "",
457 | "actionCode": "",
458 | "targetNodeId": "184699",
459 | "nodeJsonFrontend": "{\"name\":\"\\u770b\\u60c5\\u51b5\",\"procId\":\"\",\"labelData\":\"\",\"keywords\":\"\\u77e5\\u9053\\u4e86||\\u518d\\u8bf4\\u5427||\\u770b\\u60c5\\u51b5\\n\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184253\",\"nodeId\":\"1539166654301\",\"positionX\":580,\"positionY\":710}"
460 | },
461 | {
462 | "conditionId": "184251",
463 | "title": "我帮他想办法",
464 | "typeId": "",
465 | "intention": "?",
466 | "keywords": "他欠了多少钱||我帮他想想办法||什么资料\n",
467 | "labelData": "他怎么了呀||他出什么问题了吗||他欠你们钱了吗||他是不是犯什么事了||他没事吧||我帮她想办法||你们要核实什么资料呀||你们需要什么材料|你们需要的资料有哪些\n",
468 | "defaultFlag": "",
469 | "actionCode": "",
470 | "targetNodeId": "184284",
471 | "nodeJsonFrontend": "{\"name\":\"\\u6211\\u5e2e\\u4ed6\\u60f3\\u529e\\u6cd5\",\"procId\":\"\",\"labelData\":\"\\u4ed6\\u600e\\u4e48\\u4e86\\u5440||\\u4ed6\\u51fa\\u4ec0\\u4e48\\u95ee\\u9898\\u4e86\\u5417||\\u4ed6\\u6b20\\u4f60\\u4eec\\u94b1\\u4e86\\u5417||\\u4ed6\\u662f\\u4e0d\\u662f\\u72af\\u4ec0\\u4e48\\u4e8b\\u4e86||\\u4ed6\\u6ca1\\u4e8b\\u5427||\\u6211\\u5e2e\\u5979\\u60f3\\u529e\\u6cd5||\\u4f60\\u4eec\\u8981\\u6838\\u5b9e\\u4ec0\\u4e48\\u8d44\\u6599\\u5440||\\u4f60\\u4eec\\u9700\\u8981\\u4ec0\\u4e48\\u6750\\u6599|\\u4f60\\u4eec\\u9700\\u8981\\u7684\\u8d44\\u6599\\u6709\\u54ea\\u4e9b\\n\",\"keywords\":\"\\u4ed6\\u6b20\\u4e86\\u591a\\u5c11\\u94b1||\\u6211\\u5e2e\\u4ed6\\u60f3\\u60f3\\u529e\\u6cd5||\\u4ec0\\u4e48\\u8d44\\u6599\\n\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184251\",\"nodeId\":\"1539166627445\",\"positionX\":430,\"positionY\":710}"
472 | },
473 | {
474 | "conditionId": "184148",
475 | "title": "听不清楚",
476 | "typeId": "",
477 | "intention": "?",
478 | "keywords": "((重|重新|再)(讲|说))||((说|讲).*(什么|啥))||((我|听).*(不懂|不明白))",
479 | "labelData": "我不明白||你再说一遍||你能解释一下吗||我好像不明白||我听不懂||我没听清||你说的啥意思||还是不明白||你能再说一遍||你可以在说一遍么||你能在重复一遍么||你在讲一遍||你可以在讲一遍么||我没听懂||我没听明白||我不理解||再解释清楚一点||再讲一遍吧||你说什么?没听清楚。||没听清楚你说什么||你说的啥呀||没。没。听。清楚。||你说啥?没听清楚||我听不懂你说什么",
480 | "defaultFlag": "",
481 | "actionCode": "",
482 | "targetNodeId": "184306",
483 | "nodeJsonFrontend": "{\"name\":\"\\u542c\\u4e0d\\u6e05\\u695a\",\"procId\":\"\",\"labelData\":\"\\u6211\\u4e0d\\u660e\\u767d||\\u4f60\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u80fd\\u89e3\\u91ca\\u4e00\\u4e0b\\u5417||\\u6211\\u597d\\u50cf\\u4e0d\\u660e\\u767d||\\u6211\\u542c\\u4e0d\\u61c2||\\u6211\\u6ca1\\u542c\\u6e05||\\u4f60\\u8bf4\\u7684\\u5565\\u610f\\u601d||\\u8fd8\\u662f\\u4e0d\\u660e\\u767d||\\u4f60\\u80fd\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bf4\\u4e00\\u904d\\u4e48||\\u4f60\\u80fd\\u5728\\u91cd\\u590d\\u4e00\\u904d\\u4e48||\\u4f60\\u5728\\u8bb2\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bb2\\u4e00\\u904d\\u4e48||\\u6211\\u6ca1\\u542c\\u61c2||\\u6211\\u6ca1\\u542c\\u660e\\u767d||\\u6211\\u4e0d\\u7406\\u89e3||\\u518d\\u89e3\\u91ca\\u6e05\\u695a\\u4e00\\u70b9||\\u518d\\u8bb2\\u4e00\\u904d\\u5427||\\u4f60\\u8bf4\\u4ec0\\u4e48\\uff1f\\u6ca1\\u542c\\u6e05\\u695a\\u3002||\\u6ca1\\u542c\\u6e05\\u695a\\u4f60\\u8bf4\\u4ec0\\u4e48||\\u4f60\\u8bf4\\u7684\\u5565\\u5440||\\u6ca1\\u3002\\u6ca1\\u3002\\u542c\\u3002\\u6e05\\u695a\\u3002||\\u4f60\\u8bf4\\u5565\\uff1f\\u6ca1\\u542c\\u6e05\\u695a||\\u6211\\u542c\\u4e0d\\u61c2\\u4f60\\u8bf4\\u4ec0\\u4e48\",\"keywords\":\"((\\u91cd|\\u91cd\\u65b0|\\u518d)(\\u8bb2|\\u8bf4))||((\\u8bf4|\\u8bb2).*(\\u4ec0\\u4e48|\\u5565))||((\\u6211|\\u542c).*(\\u4e0d\\u61c2|\\u4e0d\\u660e\\u767d))\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184148\",\"nodeId\":\"1539166759055\",\"positionX\":820,\"positionY\":710}"
484 | }
485 | ],
486 | "op": "",
487 | "reply": "",
488 | "labelData": "",
489 | "keywords": "",
490 | "nodeJsonFrontend": "{\"name\":\"4\\u5e2e\\u5fd9\\u8f6c\\u544a\",\"procId\":\"\",\"content\":\"\\u6253\\u6270\\u4e86\\uff0c\\u8fd9\\u8fb9\\u4ea4\\u901a\\u94f6\\u884c\\u9700\\u8981\\u627e\\u4ed6\\u6838\\u5b9e\\u4e9b\\u8d44\\u6599\\uff0c\\u65b9\\u4fbf\\u7684\\u8bdd\\u5e2e\\u5fd9\\u8f6c\\u544a\\u4e00\\u4e0b\\uff0c\\u8ba9\\u4ed6\\u7ed9\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u56de\\u4e2a\\u7535\\u8bdd4008833116\\uff0c\\u60a8\\u770b\\u53ef\\u4ee5\\u5417\\u3002\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":false,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184234\",\"nodeId\":\"1539166407715\",\"positionX\":870,\"positionY\":530}"
491 | },
492 | "184282": {
493 | "nodeId": "184282",
494 | "title": "5告知号码",
495 | "nodeType": "Keep",
496 | "content": "电话是4008833116,他本人知道的,您见到他,直接让他给我行[=hang2]回电就行了,好吗?||您就说让他回电话给[w1]交通银行就行,电话号码在[w1]信用卡背面,可以吗?||您告诉{Cust_Name}[w1]{Sex}[w1]给交行[w1]信用卡中心回电就好啦,可以吗?\n",
497 | "actionCode": "",
498 | "conditions": [],
499 | "op": "",
500 | "reply": "",
501 | "labelData": "",
502 | "keywords": "",
503 | "nodeJsonFrontend": "{\"name\":\"5\\u544a\\u77e5\\u53f7\\u7801\",\"procId\":\"\",\"content\":\"\\u7535\\u8bdd\\u662f4008833116\\uff0c\\u4ed6\\u672c\\u4eba\\u77e5\\u9053\\u7684\\uff0c\\u60a8\\u89c1\\u5230\\u4ed6\\uff0c\\u76f4\\u63a5\\u8ba9\\u4ed6\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u7535\\u5c31\\u884c\\u4e86\\uff0c\\u597d\\u5417\\uff1f||\\u60a8\\u5c31\\u8bf4\\u8ba9\\u4ed6\\u56de\\u7535\\u8bdd\\u7ed9[w1]\\u4ea4\\u901a\\u94f6\\u884c\\u5c31\\u884c\\uff0c\\u7535\\u8bdd\\u53f7\\u7801\\u5728[w1]\\u4fe1\\u7528\\u5361\\u80cc\\u9762\\uff0c\\u53ef\\u4ee5\\u5417?||\\u60a8\\u544a\\u8bc9{Cust_Name}[w1]{Sex}[w1]\\u7ed9\\u4ea4\\u884c[w1]\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u56de\\u7535\\u5c31\\u597d\\u5566\\uff0c\\u53ef\\u4ee5\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184282\",\"nodeId\":\"1539167084655\",\"positionX\":310,\"positionY\":790}"
504 | },
505 | "184284": {
506 | "nodeId": "184284",
507 | "title": "6无法告知",
508 | "nodeType": "Keep",
509 | "content": "因为您不是本人,我这边没办法告知您相关信息,麻烦您转告一下他,尽快给我们回电,可以吗?\n",
510 | "actionCode": "",
511 | "conditions": [],
512 | "op": "",
513 | "reply": "",
514 | "labelData": "",
515 | "keywords": "",
516 | "nodeJsonFrontend": "{\"name\":\"6\\u65e0\\u6cd5\\u544a\\u77e5\",\"procId\":\"\",\"content\":\"\\u56e0\\u4e3a\\u60a8\\u4e0d\\u662f\\u672c\\u4eba\\uff0c\\u6211\\u8fd9\\u8fb9\\u6ca1\\u529e\\u6cd5\\u544a\\u77e5\\u60a8\\u76f8\\u5173\\u4fe1\\u606f\\uff0c\\u9ebb\\u70e6\\u60a8\\u8f6c\\u544a\\u4e00\\u4e0b\\u4ed6\\uff0c\\u5c3d\\u5feb\\u7ed9\\u6211\\u4eec\\u56de\\u7535\\uff0c\\u53ef\\u4ee5\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184284\",\"nodeId\":\"1539237773274\",\"positionX\":1220,\"positionY\":790}"
517 | },
518 | "184287": {
519 | "nodeId": "184287",
520 | "title": "7hold线帮忙转告",
521 | "nodeType": "Keep",
522 | "content": "您好,你还在听吗。麻烦转告下{Cust_Name}{Sex},尽快给交行回电,这边交通银行需要找他核实些资料,可以吗?\n",
523 | "actionCode": "",
524 | "conditions": [],
525 | "op": "",
526 | "reply": "",
527 | "labelData": "",
528 | "keywords": "",
529 | "nodeJsonFrontend": "{\"name\":\"7hold\\u7ebf\\u5e2e\\u5fd9\\u8f6c\\u544a\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u4f60\\u8fd8\\u5728\\u542c\\u5417\\u3002\\u9ebb\\u70e6\\u8f6c\\u544a\\u4e0b{Cust_Name}{Sex}\\uff0c\\u5c3d\\u5feb\\u7ed9\\u4ea4\\u884c\\u56de\\u7535\\uff0c\\u8fd9\\u8fb9\\u4ea4\\u901a\\u94f6\\u884c\\u9700\\u8981\\u627e\\u4ed6\\u6838\\u5b9e\\u4e9b\\u8d44\\u6599\\uff0c\\u53ef\\u4ee5\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184287\",\"nodeId\":\"1539167171343\",\"positionX\":1360,\"positionY\":790}"
530 | },
531 | "184294": {
532 | "nodeId": "184294",
533 | "title": "8转告质疑机器人",
534 | "nodeType": "Keep",
535 | "content": "您好,我是交通银行信用卡中心的客服代表。麻烦您转告他尽快给我行[=hang2]回电。可以吗?||我是信用卡中心的客服代表麻烦转告下{Cust_Name}{Sex},尽快给交行回电,好吗?||我是交行的客服代表。还请您转告下{Cust_Name}{Sex},尽快给交行回电。可以吗?\n",
536 | "actionCode": "",
537 | "conditions": [],
538 | "op": "",
539 | "reply": "",
540 | "labelData": "",
541 | "keywords": "",
542 | "nodeJsonFrontend": "{\"name\":\"8\\u8f6c\\u544a\\u8d28\\u7591\\u673a\\u5668\\u4eba\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\u5ba2\\u670d\\u4ee3\\u8868\\u3002\\u9ebb\\u70e6\\u60a8\\u8f6c\\u544a\\u4ed6\\u5c3d\\u5feb\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u7535\\u3002\\u53ef\\u4ee5\\u5417\\uff1f||\\u6211\\u662f\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\u5ba2\\u670d\\u4ee3\\u8868\\u9ebb\\u70e6\\u8f6c\\u544a\\u4e0b{Cust_Name}{Sex}\\uff0c\\u5c3d\\u5feb\\u7ed9\\u4ea4\\u884c\\u56de\\u7535\\uff0c\\u597d\\u5417\\uff1f||\\u6211\\u662f\\u4ea4\\u884c\\u7684\\u5ba2\\u670d\\u4ee3\\u8868\\u3002\\u8fd8\\u8bf7\\u60a8\\u8f6c\\u544a\\u4e0b{Cust_Name}{Sex}\\uff0c\\u5c3d\\u5feb\\u7ed9\\u4ea4\\u884c\\u56de\\u7535\\u3002\\u53ef\\u4ee5\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184294\",\"nodeId\":\"1539167226750\",\"positionX\":1490,\"positionY\":790}"
543 | },
544 | "184302": {
545 | "nodeId": "184302",
546 | "title": "34确认身份问号码",
547 | "nodeType": "Keep",
548 | "content": "电话号码是{NUMBER},请问您认识{Cust_Name}{Sex}吗。||{NUMBER}这个号码,请问您认识{Cust_Name}{Sex}吗。||{NUMBER},您认识{Cust_Name}{Sex}吗。\n",
549 | "actionCode": "",
550 | "conditions": [],
551 | "op": "",
552 | "reply": "",
553 | "labelData": "",
554 | "keywords": "",
555 | "nodeJsonFrontend": "{\"name\":\"34\\u786e\\u8ba4\\u8eab\\u4efd\\u95ee\\u53f7\\u7801\",\"procId\":\"\",\"content\":\"\\u7535\\u8bdd\\u53f7\\u7801\\u662f{NUMBER}\\uff0c\\u8bf7\\u95ee\\u60a8\\u8ba4\\u8bc6{Cust_Name}{Sex}\\u5417\\u3002||{NUMBER}\\u8fd9\\u4e2a\\u53f7\\u7801\\uff0c\\u8bf7\\u95ee\\u60a8\\u8ba4\\u8bc6{Cust_Name}{Sex}\\u5417\\u3002||{NUMBER}\\uff0c\\u60a8\\u8ba4\\u8bc6{Cust_Name}{Sex}\\u5417\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184302\",\"nodeId\":\"1539167305752\",\"positionX\":680,\"positionY\":470}"
556 | },
557 | "184306": {
558 | "nodeId": "184306",
559 | "title": "35重复帮忙转告",
560 | "nodeType": "Keep",
561 | "content": "这边交通银行需要找[w1]{Cust_Name}[w1]{Sex}[w1]核实些资料,方便的话[w1]帮忙转告一下,让他给我行[=hang2]回个电话好吧。||麻烦您转告下[w1]{Cust_Name}[w1]{Sex}[w1],尽快给交通银行[w1]回个电话。||麻烦您告诉[w1]{Cust_Name}[w1]{Sex}[w1],尽快给交行[w1]回个电话,好吗。",
562 | "actionCode": "",
563 | "conditions": [],
564 | "op": "",
565 | "reply": "",
566 | "labelData": "",
567 | "keywords": "",
568 | "nodeJsonFrontend": "{\"name\":\"35\\u91cd\\u590d\\u5e2e\\u5fd9\\u8f6c\\u544a\",\"procId\":\"\",\"content\":\"\\u8fd9\\u8fb9\\u4ea4\\u901a\\u94f6\\u884c\\u9700\\u8981\\u627e[w1]{Cust_Name}[w1]{Sex}[w1]\\u6838\\u5b9e\\u4e9b\\u8d44\\u6599\\uff0c\\u65b9\\u4fbf\\u7684\\u8bdd[w1]\\u5e2e\\u5fd9\\u8f6c\\u544a\\u4e00\\u4e0b\\uff0c\\u8ba9\\u4ed6\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u4e2a\\u7535\\u8bdd\\u597d\\u5427\\u3002||\\u9ebb\\u70e6\\u60a8\\u8f6c\\u544a\\u4e0b[w1]{Cust_Name}[w1]{Sex}[w1]\\uff0c\\u5c3d\\u5feb\\u7ed9\\u4ea4\\u901a\\u94f6\\u884c[w1]\\u56de\\u4e2a\\u7535\\u8bdd\\u3002||\\u9ebb\\u70e6\\u60a8\\u544a\\u8bc9[w1]{Cust_Name}[w1]{Sex}[w1]\\uff0c\\u5c3d\\u5feb\\u7ed9\\u4ea4\\u884c[w1]\\u56de\\u4e2a\\u7535\\u8bdd\\uff0c\\u597d\\u5417\\u3002\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":null,\"id\":\"184306\",\"nodeId\":\"1539167430475\",\"positionX\":810,\"positionY\":790}"
569 | },
570 | "184309": {
571 | "nodeId": "184309",
572 | "title": "36 咨询银行",
573 | "nodeType": "Keep",
574 | "content": "这边是交通银行的,麻烦您转告他尽快给我行[=hang2]回电,您看好吗?\n",
575 | "actionCode": "",
576 | "conditions": [],
577 | "op": "",
578 | "reply": "",
579 | "labelData": "",
580 | "keywords": "",
581 | "nodeJsonFrontend": "{\"name\":\"36 \\u54a8\\u8be2\\u94f6\\u884c\",\"procId\":\"\",\"content\":\"\\u8fd9\\u8fb9\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u7684\\uff0c\\u9ebb\\u70e6\\u60a8\\u8f6c\\u544a\\u4ed6\\u5c3d\\u5feb\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u7535\\uff0c\\u60a8\\u770b\\u597d\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184309\",\"nodeId\":\"1539167541369\",\"positionX\":940,\"positionY\":790}"
582 | },
583 | "184313": {
584 | "nodeId": "184313",
585 | "title": "9 还款提醒",
586 | "nodeType": "Normal",
587 | "content": "您好,本次通话将全程录音,给您来电主要是提醒您,您尾号{STATUS2}的信用卡目前已经逾期,欠款金额为{Case_Amt}元,请您务必在今天下午六点前处理到位。||您好,本次通话全程录音,您尾号{STATUS2}的信用卡已经逾期,欠款金额为{Case_Amt}元,为了避免信用卡风险继续上升,请您务必在今天六点前还款。\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
588 | "actionCode": "",
589 | "conditions": [
590 | {
591 | "conditionId": "184349",
592 | "title": "询问欠款金额",
593 | "typeId": "",
594 | "intention": "?",
595 | "keywords": "",
596 | "labelData": "欠多少钱||欠了多少||全额是多少||欠款总额是多少||我一共欠了多少||告诉我欠了多少钱||我欠了多少钱呀||你知道我欠多少\n",
597 | "defaultFlag": "",
598 | "actionCode": "",
599 | "targetNodeId": "184452",
600 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u6b20\\u6b3e\\u91d1\\u989d\",\"procId\":\"\",\"labelData\":\"\\u6b20\\u591a\\u5c11\\u94b1||\\u6b20\\u4e86\\u591a\\u5c11||\\u5168\\u989d\\u662f\\u591a\\u5c11||\\u6b20\\u6b3e\\u603b\\u989d\\u662f\\u591a\\u5c11||\\u6211\\u4e00\\u5171\\u6b20\\u4e86\\u591a\\u5c11||\\u544a\\u8bc9\\u6211\\u6b20\\u4e86\\u591a\\u5c11\\u94b1||\\u6211\\u6b20\\u4e86\\u591a\\u5c11\\u94b1\\u5440||\\u4f60\\u77e5\\u9053\\u6211\\u6b20\\u591a\\u5c11\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184349\",\"nodeId\":\"1539168588440\",\"positionX\":1490,\"positionY\":920}"
601 | },
602 | {
603 | "conditionId": "184138",
604 | "title": "不是本人",
605 | "typeId": "",
606 | "intention": "?",
607 | "keywords": "不是||不事||不试||不时||不使||不市||不十||不式||不士||不四||不似||不不死||不思||不寺||不对||不队||不堆||不兑||不怼||不对||不知道||不清楚||不知道||不",
608 | "labelData": "我这个是单位电话,别打了||我们是政府部门,别打了||这个是我们单位电话,不要再打了||我这个是公用电话||别再打了||我这是公用电话||不是本人",
609 | "defaultFlag": "",
610 | "actionCode": "",
611 | "targetNodeId": "184798",
612 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u662f\\u672c\\u4eba\",\"procId\":\"\",\"labelData\":\"\\u6211\\u8fd9\\u4e2a\\u662f\\u5355\\u4f4d\\u7535\\u8bdd\\uff0c\\u522b\\u6253\\u4e86||\\u6211\\u4eec\\u662f\\u653f\\u5e9c\\u90e8\\u95e8\\uff0c\\u522b\\u6253\\u4e86||\\u8fd9\\u4e2a\\u662f\\u6211\\u4eec\\u5355\\u4f4d\\u7535\\u8bdd\\uff0c\\u4e0d\\u8981\\u518d\\u6253\\u4e86||\\u6211\\u8fd9\\u4e2a\\u662f\\u516c\\u7528\\u7535\\u8bdd||\\u522b\\u518d\\u6253\\u4e86||\\u6211\\u8fd9\\u662f\\u516c\\u7528\\u7535\\u8bdd||\\u4e0d\\u662f\\u672c\\u4eba\",\"keywords\":\"\\u4e0d\\u662f||\\u4e0d\\u4e8b||\\u4e0d\\u8bd5||\\u4e0d\\u65f6||\\u4e0d\\u4f7f||\\u4e0d\\u5e02||\\u4e0d\\u5341||\\u4e0d\\u5f0f||\\u4e0d\\u58eb||\\u4e0d\\u56db||\\u4e0d\\u4f3c||\\u4e0d\\u4e0d\\u6b7b||\\u4e0d\\u601d||\\u4e0d\\u5bfa||\\u4e0d\\u5bf9||\\u4e0d\\u961f||\\u4e0d\\u5806||\\u4e0d\\u5151||\\u4e0d\\u603c||\\u4e0d\\u5bf9||\\u4e0d\\u77e5\\u9053||\\u4e0d\\u6e05\\u695a||\\u4e0d\\u77e5\\u9053||\\u4e0d\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184138\",\"nodeId\":\"1539167991304\",\"positionX\":160,\"positionY\":920}"
613 | },
614 | {
615 | "conditionId": "184391",
616 | "title": "询问银行自动扣款",
617 | "typeId": "",
618 | "intention": "?",
619 | "keywords": "自动扣款||自动还款",
620 | "labelData": "银行每个月帮我自动扣||银行每个月自动扣款的||银行都是每个月自动扣款呀||怎么没有自动扣款||\n",
621 | "defaultFlag": "",
622 | "actionCode": "",
623 | "targetNodeId": "184496",
624 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u94f6\\u884c\\u81ea\\u52a8\\u6263\\u6b3e\",\"procId\":\"\",\"labelData\":\"\\u94f6\\u884c\\u6bcf\\u4e2a\\u6708\\u5e2e\\u6211\\u81ea\\u52a8\\u6263||\\u94f6\\u884c\\u6bcf\\u4e2a\\u6708\\u81ea\\u52a8\\u6263\\u6b3e\\u7684||\\u94f6\\u884c\\u90fd\\u662f\\u6bcf\\u4e2a\\u6708\\u81ea\\u52a8\\u6263\\u6b3e\\u5440||\\u600e\\u4e48\\u6ca1\\u6709\\u81ea\\u52a8\\u6263\\u6b3e||\\n\",\"keywords\":\"\\u81ea\\u52a8\\u6263\\u6b3e||\\u81ea\\u52a8\\u8fd8\\u6b3e\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184391\",\"nodeId\":\"1539170813827\",\"positionX\":3690,\"positionY\":920}"
625 | },
626 | {
627 | "conditionId": "184399",
628 | "title": "卡过期",
629 | "typeId": "",
630 | "intention": "?",
631 | "keywords": "",
632 | "labelData": "这张卡过期了||这张卡已经到期了呀\n",
633 | "defaultFlag": "",
634 | "actionCode": "",
635 | "targetNodeId": "184504",
636 | "nodeJsonFrontend": "{\"name\":\"\\u5361\\u8fc7\\u671f\",\"procId\":\"\",\"labelData\":\"\\u8fd9\\u5f20\\u5361\\u8fc7\\u671f\\u4e86||\\u8fd9\\u5f20\\u5361\\u5df2\\u7ecf\\u5230\\u671f\\u4e86\\u5440\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184399\",\"nodeId\":\"1539170995069\",\"positionX\":4130,\"positionY\":920}"
637 | },
638 | {
639 | "conditionId": "184341",
640 | "title": "利息怎么算",
641 | "typeId": "",
642 | "intention": "?",
643 | "keywords": "利息怎么算||利息多少\n",
644 | "labelData": "利息怎么算||利息多少||这个的利息是多少\n",
645 | "defaultFlag": "",
646 | "actionCode": "",
647 | "targetNodeId": "184440",
648 | "nodeJsonFrontend": "{\"name\":\"\\u5229\\u606f\\u600e\\u4e48\\u7b97\",\"procId\":\"\",\"labelData\":\"\\u5229\\u606f\\u600e\\u4e48\\u7b97||\\u5229\\u606f\\u591a\\u5c11||\\u8fd9\\u4e2a\\u7684\\u5229\\u606f\\u662f\\u591a\\u5c11\\n\",\"keywords\":\"\\u5229\\u606f\\u600e\\u4e48\\u7b97||\\u5229\\u606f\\u591a\\u5c11\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184341\",\"nodeId\":\"1539168441878\",\"positionX\":930,\"positionY\":920}"
649 | },
650 | {
651 | "conditionId": "184373",
652 | "title": "询问换卡",
653 | "typeId": "",
654 | "intention": "?",
655 | "keywords": "卡换掉||卡换了",
656 | "labelData": "我不用卡了不行么||我不用这个卡了||我把这个卡扔掉了||卡不见了||可被偷了\n",
657 | "defaultFlag": "",
658 | "actionCode": "",
659 | "targetNodeId": "184476",
660 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u6362\\u5361\",\"procId\":\"\",\"labelData\":\"\\u6211\\u4e0d\\u7528\\u5361\\u4e86\\u4e0d\\u884c\\u4e48||\\u6211\\u4e0d\\u7528\\u8fd9\\u4e2a\\u5361\\u4e86||\\u6211\\u628a\\u8fd9\\u4e2a\\u5361\\u6254\\u6389\\u4e86||\\u5361\\u4e0d\\u89c1\\u4e86||\\u53ef\\u88ab\\u5077\\u4e86\\n\",\"keywords\":\"\\u5361\\u6362\\u6389||\\u5361\\u6362\\u4e86\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184373\",\"nodeId\":\"1539170307575\",\"positionX\":2700,\"positionY\":920}"
661 | },
662 | {
663 | "conditionId": "184330",
664 | "title": "已经还了",
665 | "typeId": "",
666 | "intention": "?",
667 | "keywords": "已经还了啊||刚还过||前两天还了||前几天刚还||不是还了吗||不是已经还了一笔||两张卡都还了\n",
668 | "labelData": "已经还了啊||刚还过||前两天还了||前几天刚还||不是还了吗||不是已经还了一笔||两张卡都还了\n",
669 | "defaultFlag": "",
670 | "actionCode": "",
671 | "targetNodeId": "184810",
672 | "nodeJsonFrontend": "{\"name\":\"\\u5df2\\u7ecf\\u8fd8\\u4e86\",\"procId\":\"\",\"labelData\":\"\\u5df2\\u7ecf\\u8fd8\\u4e86\\u554a||\\u521a\\u8fd8\\u8fc7||\\u524d\\u4e24\\u5929\\u8fd8\\u4e86||\\u524d\\u51e0\\u5929\\u521a\\u8fd8||\\u4e0d\\u662f\\u8fd8\\u4e86\\u5417||\\u4e0d\\u662f\\u5df2\\u7ecf\\u8fd8\\u4e86\\u4e00\\u7b14||\\u4e24\\u5f20\\u5361\\u90fd\\u8fd8\\u4e86\\n\",\"keywords\":\"\\u5df2\\u7ecf\\u8fd8\\u4e86\\u554a||\\u521a\\u8fd8\\u8fc7||\\u524d\\u4e24\\u5929\\u8fd8\\u4e86||\\u524d\\u51e0\\u5929\\u521a\\u8fd8||\\u4e0d\\u662f\\u8fd8\\u4e86\\u5417||\\u4e0d\\u662f\\u5df2\\u7ecf\\u8fd8\\u4e86\\u4e00\\u7b14||\\u4e24\\u5f20\\u5361\\u90fd\\u8fd8\\u4e86\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184330\",\"nodeId\":\"1539168152537\",\"positionX\":380,\"positionY\":920}"
673 | },
674 | {
675 | "conditionId": "184332",
676 | "title": "答应还款",
677 | "typeId": "",
678 | "intention": "?",
679 | "keywords": "知道了||马上还||行行就还||待会就还||中午就能还上||我一会就还\n",
680 | "labelData": "待会就还||中午就能还上||我一会就还||稍晚点就还||晚点会还的\n",
681 | "defaultFlag": "",
682 | "actionCode": "",
683 | "targetNodeId": "184771",
684 | "nodeJsonFrontend": "{\"name\":\"\\u7b54\\u5e94\\u8fd8\\u6b3e\",\"procId\":\"\",\"labelData\":\"\\u5f85\\u4f1a\\u5c31\\u8fd8||\\u4e2d\\u5348\\u5c31\\u80fd\\u8fd8\\u4e0a||\\u6211\\u4e00\\u4f1a\\u5c31\\u8fd8||\\u7a0d\\u665a\\u70b9\\u5c31\\u8fd8||\\u665a\\u70b9\\u4f1a\\u8fd8\\u7684\\n\",\"keywords\":\"\\u77e5\\u9053\\u4e86||\\u9a6c\\u4e0a\\u8fd8||\\u884c\\u884c\\u5c31\\u8fd8||\\u5f85\\u4f1a\\u5c31\\u8fd8||\\u4e2d\\u5348\\u5c31\\u80fd\\u8fd8\\u4e0a||\\u6211\\u4e00\\u4f1a\\u5c31\\u8fd8\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184332\",\"nodeId\":\"1539168205916\",\"positionX\":490,\"positionY\":920}"
685 | },
686 | {
687 | "conditionId": "184144",
688 | "title": "反馈用户忙",
689 | "typeId": "",
690 | "intention": "?",
691 | "keywords": "有点忙||上课||高速上||开车||在高速||在上课||在医院||开会||开车||忙着",
692 | "labelData": "忙着呢||这会有点忙",
693 | "defaultFlag": "",
694 | "actionCode": "",
695 | "targetNodeId": "184773",
696 | "nodeJsonFrontend": "{\"name\":\"\\u53cd\\u9988\\u7528\\u6237\\u5fd9\",\"procId\":\"\",\"labelData\":\"\\u5fd9\\u7740\\u5462||\\u8fd9\\u4f1a\\u6709\\u70b9\\u5fd9\",\"keywords\":\"\\u6709\\u70b9\\u5fd9||\\u4e0a\\u8bfe||\\u9ad8\\u901f\\u4e0a||\\u5f00\\u8f66||\\u5728\\u9ad8\\u901f||\\u5728\\u4e0a\\u8bfe||\\u5728\\u533b\\u9662||\\u5f00\\u4f1a||\\u5f00\\u8f66||\\u5fd9\\u7740\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184144\",\"nodeId\":\"1539168518862\",\"positionX\":1150,\"positionY\":920}"
697 | },
698 | {
699 | "conditionId": "184389",
700 | "title": "撤销逾期记录",
701 | "typeId": "",
702 | "intention": "?",
703 | "keywords": "取消逾期记录",
704 | "labelData": "帮我撤销逾期记录||你能帮我把逾期记录撤销掉吗\n",
705 | "defaultFlag": "",
706 | "actionCode": "",
707 | "targetNodeId": "184494",
708 | "nodeJsonFrontend": "{\"name\":\"\\u64a4\\u9500\\u903e\\u671f\\u8bb0\\u5f55\",\"procId\":\"\",\"labelData\":\"\\u5e2e\\u6211\\u64a4\\u9500\\u903e\\u671f\\u8bb0\\u5f55||\\u4f60\\u80fd\\u5e2e\\u6211\\u628a\\u903e\\u671f\\u8bb0\\u5f55\\u64a4\\u9500\\u6389\\u5417\\n\",\"keywords\":\"\\u53d6\\u6d88\\u903e\\u671f\\u8bb0\\u5f55\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184389\",\"nodeId\":\"1539170733236\",\"positionX\":3580,\"positionY\":920}"
709 | },
710 | {
711 | "conditionId": "184362",
712 | "title": "惊讶欠很多钱",
713 | "typeId": "",
714 | "intention": "?",
715 | "keywords": "怎么那么多钱||这么多",
716 | "labelData": "我怎么欠这么多||没花这么多啊||我没有欠钱呀||我哪有欠钱||我没有欠过钱呀||我没有欠这么多呀||我没有欠这么多钱呀||我怎么欠那么多\n",
717 | "defaultFlag": "",
718 | "actionCode": "",
719 | "targetNodeId": "184464",
720 | "nodeJsonFrontend": "{\"name\":\"\\u60ca\\u8bb6\\u6b20\\u5f88\\u591a\\u94b1\",\"procId\":\"\",\"labelData\":\"\\u6211\\u600e\\u4e48\\u6b20\\u8fd9\\u4e48\\u591a||\\u6ca1\\u82b1\\u8fd9\\u4e48\\u591a\\u554a||\\u6211\\u6ca1\\u6709\\u6b20\\u94b1\\u5440||\\u6211\\u54ea\\u6709\\u6b20\\u94b1||\\u6211\\u6ca1\\u6709\\u6b20\\u8fc7\\u94b1\\u5440||\\u6211\\u6ca1\\u6709\\u6b20\\u8fd9\\u4e48\\u591a\\u5440||\\u6211\\u6ca1\\u6709\\u6b20\\u8fd9\\u4e48\\u591a\\u94b1\\u5440||\\u6211\\u600e\\u4e48\\u6b20\\u90a3\\u4e48\\u591a\\n\",\"keywords\":\"\\u600e\\u4e48\\u90a3\\u4e48\\u591a\\u94b1||\\u8fd9\\u4e48\\u591a\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184362\",\"nodeId\":\"1539170019981\",\"positionX\":2040,\"positionY\":920}"
721 | },
722 | {
723 | "conditionId": "184353",
724 | "title": "没时间还",
725 | "typeId": "",
726 | "intention": "?",
727 | "keywords": "没时间||在乡下||不方便||在出差||在外地\n",
728 | "labelData": "今天很多事||今天没时间还||今天不行||今天没空\n",
729 | "defaultFlag": "",
730 | "actionCode": "",
731 | "targetNodeId": "184458",
732 | "nodeJsonFrontend": "{\"name\":\"\\u6ca1\\u65f6\\u95f4\\u8fd8\",\"procId\":\"\",\"labelData\":\"\\u4eca\\u5929\\u5f88\\u591a\\u4e8b||\\u4eca\\u5929\\u6ca1\\u65f6\\u95f4\\u8fd8||\\u4eca\\u5929\\u4e0d\\u884c||\\u4eca\\u5929\\u6ca1\\u7a7a\\n\",\"keywords\":\"\\u6ca1\\u65f6\\u95f4||\\u5728\\u4e61\\u4e0b||\\u4e0d\\u65b9\\u4fbf||\\u5728\\u51fa\\u5dee||\\u5728\\u5916\\u5730\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184353\",\"nodeId\":\"1539168714050\",\"positionX\":1710,\"positionY\":920}"
733 | },
734 | {
735 | "conditionId": "184405",
736 | "title": "不还了",
737 | "typeId": "",
738 | "intention": "?",
739 | "keywords": "不还了||就不还没有钱||支付宝里没钱||微信里没钱||没有现金||资金比较紧张||没有这么多||资金比较紧张||周转了||还是不够||有钱我就还了||催我也没用||逼我也没用||压力很大||有问题||不能||还不上||不行||不能||不可以||不行||没时间||忙着||干什么||现在忙||在开会||不需要||不用||不了不了||现在在上班||在上班||在上班||现在在开会||不要再打过来了||晚上再打||现在不方便||现在不方便讲电话||不方便||不方便讲电话||现在不行||现在忙||有点忙||没时间没时间||上课||高速上||在开车||在高速上||在上课||高速上不方便||你打错||我这个是公用电话||别再打||没钱\n",
740 | "labelData": "不想还||就是不还||还不了",
741 | "defaultFlag": "1",
742 | "actionCode": "",
743 | "targetNodeId": "184431",
744 | "nodeJsonFrontend": "{\"name\":\"\\u4e0d\\u8fd8\\u4e86\",\"procId\":\"\",\"labelData\":\"\\u4e0d\\u60f3\\u8fd8||\\u5c31\\u662f\\u4e0d\\u8fd8||\\u8fd8\\u4e0d\\u4e86\",\"keywords\":\"\\u4e0d\\u8fd8\\u4e86||\\u5c31\\u4e0d\\u8fd8\\u6ca1\\u6709\\u94b1||\\u652f\\u4ed8\\u5b9d\\u91cc\\u6ca1\\u94b1||\\u5fae\\u4fe1\\u91cc\\u6ca1\\u94b1||\\u6ca1\\u6709\\u73b0\\u91d1||\\u8d44\\u91d1\\u6bd4\\u8f83\\u7d27\\u5f20||\\u6ca1\\u6709\\u8fd9\\u4e48\\u591a||\\u8d44\\u91d1\\u6bd4\\u8f83\\u7d27\\u5f20||\\u5468\\u8f6c\\u4e86||\\u8fd8\\u662f\\u4e0d\\u591f||\\u6709\\u94b1\\u6211\\u5c31\\u8fd8\\u4e86||\\u50ac\\u6211\\u4e5f\\u6ca1\\u7528||\\u903c\\u6211\\u4e5f\\u6ca1\\u7528||\\u538b\\u529b\\u5f88\\u5927||\\u6709\\u95ee\\u9898||\\u4e0d\\u80fd||\\u8fd8\\u4e0d\\u4e0a||\\u4e0d\\u884c||\\u4e0d\\u80fd||\\u4e0d\\u53ef\\u4ee5||\\u4e0d\\u884c||\\u6ca1\\u65f6\\u95f4||\\u5fd9\\u7740||\\u5e72\\u4ec0\\u4e48||\\u73b0\\u5728\\u5fd9||\\u5728\\u5f00\\u4f1a||\\u4e0d\\u9700\\u8981||\\u4e0d\\u7528||\\u4e0d\\u4e86\\u4e0d\\u4e86||\\u73b0\\u5728\\u5728\\u4e0a\\u73ed||\\u5728\\u4e0a\\u73ed||\\u5728\\u4e0a\\u73ed||\\u73b0\\u5728\\u5728\\u5f00\\u4f1a||\\u4e0d\\u8981\\u518d\\u6253\\u8fc7\\u6765\\u4e86||\\u665a\\u4e0a\\u518d\\u6253||\\u73b0\\u5728\\u4e0d\\u65b9\\u4fbf||\\u73b0\\u5728\\u4e0d\\u65b9\\u4fbf\\u8bb2\\u7535\\u8bdd||\\u4e0d\\u65b9\\u4fbf||\\u4e0d\\u65b9\\u4fbf\\u8bb2\\u7535\\u8bdd||\\u73b0\\u5728\\u4e0d\\u884c||\\u73b0\\u5728\\u5fd9||\\u6709\\u70b9\\u5fd9||\\u6ca1\\u65f6\\u95f4\\u6ca1\\u65f6\\u95f4||\\u4e0a\\u8bfe||\\u9ad8\\u901f\\u4e0a||\\u5728\\u5f00\\u8f66||\\u5728\\u9ad8\\u901f\\u4e0a||\\u5728\\u4e0a\\u8bfe||\\u9ad8\\u901f\\u4e0a\\u4e0d\\u65b9\\u4fbf||\\u4f60\\u6253\\u9519||\\u6211\\u8fd9\\u4e2a\\u662f\\u516c\\u7528\\u7535\\u8bdd||\\u522b\\u518d\\u6253||\\u6ca1\\u94b1\\n\",\"nodeType\":1,\"defaultnode\":true,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184405\",\"nodeId\":\"1539171258807\",\"positionX\":4460,\"positionY\":920}"
745 | },
746 | {
747 | "conditionId": "184343",
748 | "title": "手续费",
749 | "typeId": "",
750 | "intention": "?",
751 | "keywords": "手续费多少||手续费怎么算\n",
752 | "labelData": "手续费多少||手续费怎么算||有手续费吗\n",
753 | "defaultFlag": "",
754 | "actionCode": "",
755 | "targetNodeId": "184446",
756 | "nodeJsonFrontend": "{\"name\":\"\\u624b\\u7eed\\u8d39\",\"procId\":\"\",\"labelData\":\"\\u624b\\u7eed\\u8d39\\u591a\\u5c11||\\u624b\\u7eed\\u8d39\\u600e\\u4e48\\u7b97||\\u6709\\u624b\\u7eed\\u8d39\\u5417\\n\",\"keywords\":\"\\u624b\\u7eed\\u8d39\\u591a\\u5c11||\\u624b\\u7eed\\u8d39\\u600e\\u4e48\\u7b97\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184343\",\"nodeId\":\"1539168477475\",\"positionX\":1040,\"positionY\":920}"
757 | },
758 | {
759 | "conditionId": "184395",
760 | "title": "卡被盗",
761 | "typeId": "",
762 | "intention": "?",
763 | "keywords": "",
764 | "labelData": "我卡被盗刷了||我的卡被不认识的人刷了||我的卡不知道是被谁刷的||这张卡好久不用了||不是我消费的呀||不知道谁刷的卡",
765 | "defaultFlag": "",
766 | "actionCode": "",
767 | "targetNodeId": "889035",
768 | "nodeJsonFrontend": "{\"name\":\"\\u5361\\u88ab\\u76d7\",\"procId\":\"\",\"labelData\":\"\\u6211\\u5361\\u88ab\\u76d7\\u5237\\u4e86||\\u6211\\u7684\\u5361\\u88ab\\u4e0d\\u8ba4\\u8bc6\\u7684\\u4eba\\u5237\\u4e86||\\u6211\\u7684\\u5361\\u4e0d\\u77e5\\u9053\\u662f\\u88ab\\u8c01\\u5237\\u7684||\\u8fd9\\u5f20\\u5361\\u597d\\u4e45\\u4e0d\\u7528\\u4e86||\\u4e0d\\u662f\\u6211\\u6d88\\u8d39\\u7684\\u5440||\\u4e0d\\u77e5\\u9053\\u8c01\\u5237\\u7684\\u5361\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184395\",\"nodeId\":\"1539170927390\",\"positionX\":3910,\"positionY\":920,\"desirecont\":\"\"}"
769 | },
770 | {
771 | "conditionId": "184328",
772 | "title": "反馈稍后",
773 | "typeId": "",
774 | "intention": "?",
775 | "keywords": "能不能晚点||延期||过几天||明天还||还款时间以后行吗||这个月||帮我申请下||过几天肯定还||还没开资||下个月||下月||本月\n",
776 | "labelData": "能不能晚点||还款时间以后行吗||帮我申请下||过几天肯定还||过几天可以吗||过几天有钱了就还||晚点还可以吗||能不能晚点还\n",
777 | "defaultFlag": "",
778 | "actionCode": "",
779 | "targetNodeId": "184431",
780 | "nodeJsonFrontend": "{\"name\":\"\\u53cd\\u9988\\u7a0d\\u540e\",\"procId\":\"\",\"labelData\":\"\\u80fd\\u4e0d\\u80fd\\u665a\\u70b9||\\u8fd8\\u6b3e\\u65f6\\u95f4\\u4ee5\\u540e\\u884c\\u5417||\\u5e2e\\u6211\\u7533\\u8bf7\\u4e0b||\\u8fc7\\u51e0\\u5929\\u80af\\u5b9a\\u8fd8||\\u8fc7\\u51e0\\u5929\\u53ef\\u4ee5\\u5417||\\u8fc7\\u51e0\\u5929\\u6709\\u94b1\\u4e86\\u5c31\\u8fd8||\\u665a\\u70b9\\u8fd8\\u53ef\\u4ee5\\u5417||\\u80fd\\u4e0d\\u80fd\\u665a\\u70b9\\u8fd8\\n\",\"keywords\":\"\\u80fd\\u4e0d\\u80fd\\u665a\\u70b9||\\u5ef6\\u671f||\\u8fc7\\u51e0\\u5929||\\u660e\\u5929\\u8fd8||\\u8fd8\\u6b3e\\u65f6\\u95f4\\u4ee5\\u540e\\u884c\\u5417||\\u8fd9\\u4e2a\\u6708||\\u5e2e\\u6211\\u7533\\u8bf7\\u4e0b||\\u8fc7\\u51e0\\u5929\\u80af\\u5b9a\\u8fd8||\\u8fd8\\u6ca1\\u5f00\\u8d44||\\u4e0b\\u4e2a\\u6708||\\u4e0b\\u6708||\\u672c\\u6708\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184328\",\"nodeId\":\"1539168030817\",\"positionX\":270,\"positionY\":920}"
781 | },
782 | {
783 | "conditionId": "184393",
784 | "title": "卡是朋友的",
785 | "typeId": "",
786 | "intention": "?",
787 | "keywords": "",
788 | "labelData": "卡片是我朋友用的||欠款都是我朋友消费的\n",
789 | "defaultFlag": "",
790 | "actionCode": "",
791 | "targetNodeId": "184498",
792 | "nodeJsonFrontend": "{\"name\":\"\\u5361\\u662f\\u670b\\u53cb\\u7684\",\"procId\":\"\",\"labelData\":\"\\u5361\\u7247\\u662f\\u6211\\u670b\\u53cb\\u7528\\u7684||\\u6b20\\u6b3e\\u90fd\\u662f\\u6211\\u670b\\u53cb\\u6d88\\u8d39\\u7684\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184393\",\"nodeId\":\"1539170859284\",\"positionX\":3800,\"positionY\":920}"
793 | },
794 | {
795 | "conditionId": "184339",
796 | "title": "怎么还",
797 | "typeId": "",
798 | "intention": "?",
799 | "keywords": "怎么还||在哪还||用什么还\n",
800 | "labelData": "什么还款方式||怎么还款呀||我能怎样还款呀||还款方式有哪些\n",
801 | "defaultFlag": "",
802 | "actionCode": "",
803 | "targetNodeId": "184438",
804 | "nodeJsonFrontend": "{\"name\":\"\\u600e\\u4e48\\u8fd8\",\"procId\":\"\",\"labelData\":\"\\u4ec0\\u4e48\\u8fd8\\u6b3e\\u65b9\\u5f0f||\\u600e\\u4e48\\u8fd8\\u6b3e\\u5440||\\u6211\\u80fd\\u600e\\u6837\\u8fd8\\u6b3e\\u5440||\\u8fd8\\u6b3e\\u65b9\\u5f0f\\u6709\\u54ea\\u4e9b\\n\",\"keywords\":\"\\u600e\\u4e48\\u8fd8||\\u5728\\u54ea\\u8fd8||\\u7528\\u4ec0\\u4e48\\u8fd8\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184339\",\"nodeId\":\"1539168397314\",\"positionX\":820,\"positionY\":920}"
805 | },
806 | {
807 | "conditionId": "184364",
808 | "title": "发短信",
809 | "typeId": "",
810 | "intention": "?",
811 | "keywords": "发短信||可以发短信么||发短信给我",
812 | "labelData": "你这边方便给我发一下短信吗||账单,你给我发个短信吧||你发短信告诉我可以吗||短信可以么\n",
813 | "defaultFlag": "",
814 | "actionCode": "",
815 | "targetNodeId": "184466",
816 | "nodeJsonFrontend": "{\"name\":\"\\u53d1\\u77ed\\u4fe1\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u8fd9\\u8fb9\\u65b9\\u4fbf\\u7ed9\\u6211\\u53d1\\u4e00\\u4e0b\\u77ed\\u4fe1\\u5417||\\u8d26\\u5355,\\u4f60\\u7ed9\\u6211\\u53d1\\u4e2a\\u77ed\\u4fe1\\u5427||\\u4f60\\u53d1\\u77ed\\u4fe1\\u544a\\u8bc9\\u6211\\u53ef\\u4ee5\\u5417||\\u77ed\\u4fe1\\u53ef\\u4ee5\\u4e48\\n\",\"keywords\":\"\\u53d1\\u77ed\\u4fe1||\\u53ef\\u4ee5\\u53d1\\u77ed\\u4fe1\\u4e48||\\u53d1\\u77ed\\u4fe1\\u7ed9\\u6211\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184364\",\"nodeId\":\"1539170089993\",\"positionX\":2150,\"positionY\":920}"
817 | },
818 | {
819 | "conditionId": "184152",
820 | "title": "要求(稍后联系)",
821 | "typeId": "",
822 | "intention": "?",
823 | "keywords": "晚点打过来吧",
824 | "labelData": "晚点打过来吧||等会再联系||等会打过来",
825 | "defaultFlag": "",
826 | "actionCode": "",
827 | "targetNodeId": "184773",
828 | "nodeJsonFrontend": "{\"name\":\"\\u8981\\u6c42\\uff08\\u7a0d\\u540e\\u8054\\u7cfb\\uff09\",\"procId\":\"\",\"labelData\":\"\\u665a\\u70b9\\u6253\\u8fc7\\u6765\\u5427||\\u7b49\\u4f1a\\u518d\\u8054\\u7cfb||\\u7b49\\u4f1a\\u6253\\u8fc7\\u6765\",\"keywords\":\"\\u665a\\u70b9\\u6253\\u8fc7\\u6765\\u5427\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184152\",\"nodeId\":\"1539168545415\",\"positionX\":1260,\"positionY\":920,\"desirecont\":null}"
829 | },
830 | {
831 | "conditionId": "184150",
832 | "title": "反馈重复联系",
833 | "typeId": "",
834 | "intention": "?",
835 | "keywords": "已经打过了||刚刚有人打过了",
836 | "labelData": "之前有人来过电话了||催了我很多次了||已经有人打过电话了||已经有人打过了||上次打过电话了||已经通知过了",
837 | "defaultFlag": "",
838 | "actionCode": "",
839 | "targetNodeId": "184472",
840 | "nodeJsonFrontend": "{\"name\":\"\\u53cd\\u9988\\u91cd\\u590d\\u8054\\u7cfb\",\"procId\":\"\",\"labelData\":\"\\u4e4b\\u524d\\u6709\\u4eba\\u6765\\u8fc7\\u7535\\u8bdd\\u4e86||\\u50ac\\u4e86\\u6211\\u5f88\\u591a\\u6b21\\u4e86||\\u5df2\\u7ecf\\u6709\\u4eba\\u6253\\u8fc7\\u7535\\u8bdd\\u4e86||\\u5df2\\u7ecf\\u6709\\u4eba\\u6253\\u8fc7\\u4e86||\\u4e0a\\u6b21\\u6253\\u8fc7\\u7535\\u8bdd\\u4e86||\\u5df2\\u7ecf\\u901a\\u77e5\\u8fc7\\u4e86\",\"keywords\":\"\\u5df2\\u7ecf\\u6253\\u8fc7\\u4e86||\\u521a\\u521a\\u6709\\u4eba\\u6253\\u8fc7\\u4e86\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184150\",\"nodeId\":\"1539170246579\",\"positionX\":2480,\"positionY\":920}"
841 | },
842 | {
843 | "conditionId": "184387",
844 | "title": "没收到提醒",
845 | "typeId": "",
846 | "intention": "?",
847 | "keywords": "没有提醒",
848 | "labelData": "为什么没收到提醒||怎么不早点提醒||之前没提醒我\n",
849 | "defaultFlag": "",
850 | "actionCode": "",
851 | "targetNodeId": "184492",
852 | "nodeJsonFrontend": "{\"name\":\"\\u6ca1\\u6536\\u5230\\u63d0\\u9192\",\"procId\":\"\",\"labelData\":\"\\u4e3a\\u4ec0\\u4e48\\u6ca1\\u6536\\u5230\\u63d0\\u9192||\\u600e\\u4e48\\u4e0d\\u65e9\\u70b9\\u63d0\\u9192||\\u4e4b\\u524d\\u6ca1\\u63d0\\u9192\\u6211\\n\",\"keywords\":\"\\u6ca1\\u6709\\u63d0\\u9192\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184387\",\"nodeId\":\"1539170699354\",\"positionX\":3470,\"positionY\":920}"
853 | },
854 | {
855 | "conditionId": "184401",
856 | "title": "投诉",
857 | "typeId": "",
858 | "intention": "?",
859 | "keywords": "投诉",
860 | "labelData": "我要投诉你们||我要找你们领导||让你么领导来找我\n",
861 | "defaultFlag": "",
862 | "actionCode": "",
863 | "targetNodeId": "888991",
864 | "nodeJsonFrontend": "{\"name\":\"\\u6295\\u8bc9\",\"procId\":\"\",\"labelData\":\"\\u6211\\u8981\\u6295\\u8bc9\\u4f60\\u4eec||\\u6211\\u8981\\u627e\\u4f60\\u4eec\\u9886\\u5bfc||\\u8ba9\\u4f60\\u4e48\\u9886\\u5bfc\\u6765\\u627e\\u6211\\n\",\"keywords\":\"\\u6295\\u8bc9\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184401\",\"nodeId\":\"1539171123967\",\"positionX\":4240,\"positionY\":920}"
865 | },
866 | {
867 | "conditionId": "184377",
868 | "title": "还最低额度",
869 | "typeId": "",
870 | "intention": "?",
871 | "keywords": "",
872 | "labelData": "那我先换最低额度吧||我先还最低吧||我先还个最低额度吧||先还这些就可以是吧||还最低额度就行是吧||先还这些就行||先还最低额度吧\n",
873 | "defaultFlag": "",
874 | "actionCode": "",
875 | "targetNodeId": "184482",
876 | "nodeJsonFrontend": "{\"name\":\"\\u8fd8\\u6700\\u4f4e\\u989d\\u5ea6\",\"procId\":\"\",\"labelData\":\"\\u90a3\\u6211\\u5148\\u6362\\u6700\\u4f4e\\u989d\\u5ea6\\u5427||\\u6211\\u5148\\u8fd8\\u6700\\u4f4e\\u5427||\\u6211\\u5148\\u8fd8\\u4e2a\\u6700\\u4f4e\\u989d\\u5ea6\\u5427||\\u5148\\u8fd8\\u8fd9\\u4e9b\\u5c31\\u53ef\\u4ee5\\u662f\\u5427||\\u8fd8\\u6700\\u4f4e\\u989d\\u5ea6\\u5c31\\u884c\\u662f\\u5427||\\u5148\\u8fd8\\u8fd9\\u4e9b\\u5c31\\u884c||\\u5148\\u8fd8\\u6700\\u4f4e\\u989d\\u5ea6\\u5427\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184377\",\"nodeId\":\"1539170440996\",\"positionX\":2920,\"positionY\":920}"
877 | },
878 | {
879 | "conditionId": "184140",
880 | "title": "质疑身份",
881 | "typeId": "",
882 | "intention": "?",
883 | "keywords": "你是谁||哪位||什么银行||你谁",
884 | "labelData": "请问您是哪位||你是哪位呀",
885 | "defaultFlag": "",
886 | "actionCode": "",
887 | "targetNodeId": "184411",
888 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u8eab\\u4efd\",\"procId\":\"\",\"labelData\":\"\\u8bf7\\u95ee\\u60a8\\u662f\\u54ea\\u4f4d||\\u4f60\\u662f\\u54ea\\u4f4d\\u5440\",\"keywords\":\"\\u4f60\\u662f\\u8c01||\\u54ea\\u4f4d||\\u4ec0\\u4e48\\u94f6\\u884c||\\u4f60\\u8c01\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184140\",\"nodeId\":\"1539167959001\",\"positionX\":50,\"positionY\":920}"
889 | },
890 | {
891 | "conditionId": "184397",
892 | "title": "还错卡号",
893 | "typeId": "",
894 | "intention": "?",
895 | "keywords": "还错卡了||还到其他卡上了",
896 | "labelData": "我还到另张卡了||我还到另外一张卡里了\n",
897 | "defaultFlag": "",
898 | "actionCode": "",
899 | "targetNodeId": "184502",
900 | "nodeJsonFrontend": "{\"name\":\"\\u8fd8\\u9519\\u5361\\u53f7\",\"procId\":\"\",\"labelData\":\"\\u6211\\u8fd8\\u5230\\u53e6\\u5f20\\u5361\\u4e86||\\u6211\\u8fd8\\u5230\\u53e6\\u5916\\u4e00\\u5f20\\u5361\\u91cc\\u4e86\\n\",\"keywords\":\"\\u8fd8\\u9519\\u5361\\u4e86||\\u8fd8\\u5230\\u5176\\u4ed6\\u5361\\u4e0a\\u4e86\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184397\",\"nodeId\":\"1539170978901\",\"positionX\":4020,\"positionY\":920}"
901 | },
902 | {
903 | "conditionId": "184258",
904 | "title": "询问银行",
905 | "typeId": "",
906 | "intention": "?",
907 | "keywords": "什么行||哪个行\n",
908 | "labelData": "你们是哪个银行||是哪个银行||什么银行\n",
909 | "defaultFlag": "",
910 | "actionCode": "",
911 | "targetNodeId": "184448",
912 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u94f6\\u884c\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u4eec\\u662f\\u54ea\\u4e2a\\u94f6\\u884c||\\u662f\\u54ea\\u4e2a\\u94f6\\u884c||\\u4ec0\\u4e48\\u94f6\\u884c\\n\",\"keywords\":\"\\u4ec0\\u4e48\\u884c||\\u54ea\\u4e2a\\u884c\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184258\",\"nodeId\":\"1539168562572\",\"positionX\":1390,\"positionY\":920}"
913 | },
914 | {
915 | "conditionId": "184381",
916 | "title": "询问还不上影响",
917 | "typeId": "",
918 | "intention": "?",
919 | "keywords": "",
920 | "labelData": "今天还不上有什么影响||不还有什么影响么||不还会不会影响我的信用\n",
921 | "defaultFlag": "",
922 | "actionCode": "",
923 | "targetNodeId": "184486",
924 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u8fd8\\u4e0d\\u4e0a\\u5f71\\u54cd\",\"procId\":\"\",\"labelData\":\"\\u4eca\\u5929\\u8fd8\\u4e0d\\u4e0a\\u6709\\u4ec0\\u4e48\\u5f71\\u54cd||\\u4e0d\\u8fd8\\u6709\\u4ec0\\u4e48\\u5f71\\u54cd\\u4e48||\\u4e0d\\u8fd8\\u4f1a\\u4e0d\\u4f1a\\u5f71\\u54cd\\u6211\\u7684\\u4fe1\\u7528\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184381\",\"nodeId\":\"1539170541347\",\"positionX\":3140,\"positionY\":920}"
925 | },
926 | {
927 | "conditionId": "184351",
928 | "title": "询问逾期",
929 | "typeId": "",
930 | "intention": "?",
931 | "keywords": "逾期",
932 | "labelData": "逾期几天了||逾期多少天了||我逾期多长时间了||逾期多久了呀||预期多少天了||预期多少天||预期多久了呀\n",
933 | "defaultFlag": "",
934 | "actionCode": "",
935 | "targetNodeId": "184454",
936 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u903e\\u671f\",\"procId\":\"\",\"labelData\":\"\\u903e\\u671f\\u51e0\\u5929\\u4e86||\\u903e\\u671f\\u591a\\u5c11\\u5929\\u4e86||\\u6211\\u903e\\u671f\\u591a\\u957f\\u65f6\\u95f4\\u4e86||\\u903e\\u671f\\u591a\\u4e45\\u4e86\\u5440||\\u9884\\u671f\\u591a\\u5c11\\u5929\\u4e86||\\u9884\\u671f\\u591a\\u5c11\\u5929||\\u9884\\u671f\\u591a\\u4e45\\u4e86\\u5440\\n\",\"keywords\":\"\\u903e\\u671f\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184351\",\"nodeId\":\"1539168630197\",\"positionX\":1600,\"positionY\":920}"
937 | },
938 | {
939 | "conditionId": "184368",
940 | "title": "分期还款",
941 | "typeId": "",
942 | "intention": "?",
943 | "keywords": "分期可以么||分期",
944 | "labelData": "分期还款可以吗||不是可以分期吗||分期可不可以||分期可以么||能分期还款吗\n\n",
945 | "defaultFlag": "",
946 | "actionCode": "",
947 | "targetNodeId": "184470",
948 | "nodeJsonFrontend": "{\"name\":\"\\u5206\\u671f\\u8fd8\\u6b3e\",\"procId\":\"\",\"labelData\":\"\\u5206\\u671f\\u8fd8\\u6b3e\\u53ef\\u4ee5\\u5417||\\u4e0d\\u662f\\u53ef\\u4ee5\\u5206\\u671f\\u5417||\\u5206\\u671f\\u53ef\\u4e0d\\u53ef\\u4ee5||\\u5206\\u671f\\u53ef\\u4ee5\\u4e48||\\u80fd\\u5206\\u671f\\u8fd8\\u6b3e\\u5417\\n\\n\",\"keywords\":\"\\u5206\\u671f\\u53ef\\u4ee5\\u4e48||\\u5206\\u671f\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184368\",\"nodeId\":\"1539170200309\",\"positionX\":2370,\"positionY\":920}"
949 | },
950 | {
951 | "conditionId": "184360",
952 | "title": "具体还款时间",
953 | "typeId": "",
954 | "intention": "?",
955 | "keywords": "",
956 | "labelData": "五点前还上就行是吧||几点之前||你说什么时间||今天还就可以了吧||什么时候要还款||必须今天换吗||要我什么时候还\n\n",
957 | "defaultFlag": "",
958 | "actionCode": "",
959 | "targetNodeId": "184462",
960 | "nodeJsonFrontend": "{\"name\":\"\\u5177\\u4f53\\u8fd8\\u6b3e\\u65f6\\u95f4\",\"procId\":\"\",\"labelData\":\"\\u4e94\\u70b9\\u524d\\u8fd8\\u4e0a\\u5c31\\u884c\\u662f\\u5427||\\u51e0\\u70b9\\u4e4b\\u524d||\\u4f60\\u8bf4\\u4ec0\\u4e48\\u65f6\\u95f4||\\u4eca\\u5929\\u8fd8\\u5c31\\u53ef\\u4ee5\\u4e86\\u5427||\\u4ec0\\u4e48\\u65f6\\u5019\\u8981\\u8fd8\\u6b3e||\\u5fc5\\u987b\\u4eca\\u5929\\u6362\\u5417||\\u8981\\u6211\\u4ec0\\u4e48\\u65f6\\u5019\\u8fd8\\n\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184360\",\"nodeId\":\"1539169459315\",\"positionX\":1930,\"positionY\":920}"
961 | },
962 | {
963 | "conditionId": "184375",
964 | "title": "询问客服电话",
965 | "typeId": "",
966 | "intention": "?",
967 | "keywords": "",
968 | "labelData": "客服电话是多少||怎么联系你们||你们客户号码是什么||告诉我,你们的号码\n",
969 | "defaultFlag": "",
970 | "actionCode": "",
971 | "targetNodeId": "184478",
972 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u5ba2\\u670d\\u7535\\u8bdd\",\"procId\":\"\",\"labelData\":\"\\u5ba2\\u670d\\u7535\\u8bdd\\u662f\\u591a\\u5c11||\\u600e\\u4e48\\u8054\\u7cfb\\u4f60\\u4eec||\\u4f60\\u4eec\\u5ba2\\u6237\\u53f7\\u7801\\u662f\\u4ec0\\u4e48||\\u544a\\u8bc9\\u6211\\uff0c\\u4f60\\u4eec\\u7684\\u53f7\\u7801\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184375\",\"nodeId\":\"1539170402860\",\"positionX\":2810,\"positionY\":920}"
973 | },
974 | {
975 | "conditionId": "184334",
976 | "title": "忘记还款",
977 | "typeId": "",
978 | "intention": "?",
979 | "keywords": "我给忘了||忘记了\n",
980 | "labelData": "我给忘了||我忘记还了\n",
981 | "defaultFlag": "",
982 | "actionCode": "",
983 | "targetNodeId": "184862",
984 | "nodeJsonFrontend": "{\"name\":\"\\u5fd8\\u8bb0\\u8fd8\\u6b3e\",\"procId\":\"\",\"labelData\":\"\\u6211\\u7ed9\\u5fd8\\u4e86||\\u6211\\u5fd8\\u8bb0\\u8fd8\\u4e86\\n\",\"keywords\":\"\\u6211\\u7ed9\\u5fd8\\u4e86||\\u5fd8\\u8bb0\\u4e86\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184334\",\"nodeId\":\"1539168331819\",\"positionX\":600,\"positionY\":920}"
985 | },
986 | {
987 | "conditionId": "184385",
988 | "title": "看情况",
989 | "typeId": "",
990 | "intention": "?",
991 | "keywords": "",
992 | "labelData": "我想想办法||我去借点||看情况\n",
993 | "defaultFlag": "",
994 | "actionCode": "",
995 | "targetNodeId": "184490",
996 | "nodeJsonFrontend": "{\"name\":\"\\u770b\\u60c5\\u51b5\",\"procId\":\"\",\"labelData\":\"\\u6211\\u60f3\\u60f3\\u529e\\u6cd5||\\u6211\\u53bb\\u501f\\u70b9||\\u770b\\u60c5\\u51b5\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184385\",\"nodeId\":\"1539170634470\",\"positionX\":3360,\"positionY\":920}"
997 | },
998 | {
999 | "conditionId": "184371",
1000 | "title": "询问卡冻结情况",
1001 | "typeId": "",
1002 | "intention": "?",
1003 | "keywords": "",
1004 | "labelData": "我的卡还能使用么||我的卡被冻结了么||我的卡还能用么\n",
1005 | "defaultFlag": "",
1006 | "actionCode": "",
1007 | "targetNodeId": "184474",
1008 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u5361\\u51bb\\u7ed3\\u60c5\\u51b5\",\"procId\":\"\",\"labelData\":\"\\u6211\\u7684\\u5361\\u8fd8\\u80fd\\u4f7f\\u7528\\u4e48||\\u6211\\u7684\\u5361\\u88ab\\u51bb\\u7ed3\\u4e86\\u4e48||\\u6211\\u7684\\u5361\\u8fd8\\u80fd\\u7528\\u4e48\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184371\",\"nodeId\":\"1539170266240\",\"positionX\":2590,\"positionY\":920}"
1009 | },
1010 | {
1011 | "conditionId": "184358",
1012 | "title": "最少还多少钱",
1013 | "typeId": "",
1014 | "intention": "?",
1015 | "keywords": "",
1016 | "labelData": "最低可以还多少||我少还点行不||最低是多少||最低限额是多少||部分还款,少还点||最少要还多少钱||最低还款多少\n",
1017 | "defaultFlag": "",
1018 | "actionCode": "",
1019 | "targetNodeId": "184460",
1020 | "nodeJsonFrontend": "{\"name\":\"\\u6700\\u5c11\\u8fd8\\u591a\\u5c11\\u94b1\",\"procId\":\"\",\"labelData\":\"\\u6700\\u4f4e\\u53ef\\u4ee5\\u8fd8\\u591a\\u5c11||\\u6211\\u5c11\\u8fd8\\u70b9\\u884c\\u4e0d||\\u6700\\u4f4e\\u662f\\u591a\\u5c11||\\u6700\\u4f4e\\u9650\\u989d\\u662f\\u591a\\u5c11||\\u90e8\\u5206\\u8fd8\\u6b3e\\uff0c\\u5c11\\u8fd8\\u70b9||\\u6700\\u5c11\\u8981\\u8fd8\\u591a\\u5c11\\u94b1||\\u6700\\u4f4e\\u8fd8\\u6b3e\\u591a\\u5c11\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184358\",\"nodeId\":\"1539169307118\",\"positionX\":1820,\"positionY\":920}"
1021 | },
1022 | {
1023 | "conditionId": "184379",
1024 | "title": "改还款日期",
1025 | "typeId": "",
1026 | "intention": "?",
1027 | "keywords": "改天还||改天",
1028 | "labelData": "改下还款日期||能不能帮我改下还款日期||能改天还款吗||可以改天还吗\n",
1029 | "defaultFlag": "",
1030 | "actionCode": "",
1031 | "targetNodeId": "184484",
1032 | "nodeJsonFrontend": "{\"name\":\"\\u6539\\u8fd8\\u6b3e\\u65e5\\u671f\",\"procId\":\"\",\"labelData\":\"\\u6539\\u4e0b\\u8fd8\\u6b3e\\u65e5\\u671f||\\u80fd\\u4e0d\\u80fd\\u5e2e\\u6211\\u6539\\u4e0b\\u8fd8\\u6b3e\\u65e5\\u671f||\\u80fd\\u6539\\u5929\\u8fd8\\u6b3e\\u5417||\\u53ef\\u4ee5\\u6539\\u5929\\u8fd8\\u5417\\n\",\"keywords\":\"\\u6539\\u5929\\u8fd8||\\u6539\\u5929\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184379\",\"nodeId\":\"1539170480321\",\"positionX\":3030,\"positionY\":920}"
1033 | },
1034 | {
1035 | "conditionId": "184403",
1036 | "title": "重新讲",
1037 | "typeId": "",
1038 | "intention": "有意愿",
1039 | "keywords": "((重|重新|再)(讲|说))||((说|讲).*(什么|啥))||((我|听).*(不懂|不明白))",
1040 | "labelData": "我不明白||你再说一遍||你能解释一下吗||我好像不明白||我听不懂||我没听清||你说的啥意思||还是不明白||你能再说一遍||你可以在说一遍么||你能在重复一遍么||你在讲一遍||你可以在讲一遍么||我没听懂||我没听明白||我不理解||再解释清楚一点||再讲一遍吧||你说什么?没听清楚。||没听清楚你说什么||你说的啥呀||没。没。听。清楚。||你说啥?没听清楚||我听不懂你说什么",
1041 | "defaultFlag": "",
1042 | "actionCode": "",
1043 | "targetNodeId": "184313",
1044 | "nodeJsonFrontend": "{\"name\":\"\\u91cd\\u65b0\\u8bb2\",\"procId\":\"\",\"labelData\":\"\\u6211\\u4e0d\\u660e\\u767d||\\u4f60\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u80fd\\u89e3\\u91ca\\u4e00\\u4e0b\\u5417||\\u6211\\u597d\\u50cf\\u4e0d\\u660e\\u767d||\\u6211\\u542c\\u4e0d\\u61c2||\\u6211\\u6ca1\\u542c\\u6e05||\\u4f60\\u8bf4\\u7684\\u5565\\u610f\\u601d||\\u8fd8\\u662f\\u4e0d\\u660e\\u767d||\\u4f60\\u80fd\\u518d\\u8bf4\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bf4\\u4e00\\u904d\\u4e48||\\u4f60\\u80fd\\u5728\\u91cd\\u590d\\u4e00\\u904d\\u4e48||\\u4f60\\u5728\\u8bb2\\u4e00\\u904d||\\u4f60\\u53ef\\u4ee5\\u5728\\u8bb2\\u4e00\\u904d\\u4e48||\\u6211\\u6ca1\\u542c\\u61c2||\\u6211\\u6ca1\\u542c\\u660e\\u767d||\\u6211\\u4e0d\\u7406\\u89e3||\\u518d\\u89e3\\u91ca\\u6e05\\u695a\\u4e00\\u70b9||\\u518d\\u8bb2\\u4e00\\u904d\\u5427||\\u4f60\\u8bf4\\u4ec0\\u4e48\\uff1f\\u6ca1\\u542c\\u6e05\\u695a\\u3002||\\u6ca1\\u542c\\u6e05\\u695a\\u4f60\\u8bf4\\u4ec0\\u4e48||\\u4f60\\u8bf4\\u7684\\u5565\\u5440||\\u6ca1\\u3002\\u6ca1\\u3002\\u542c\\u3002\\u6e05\\u695a\\u3002||\\u4f60\\u8bf4\\u5565\\uff1f\\u6ca1\\u542c\\u6e05\\u695a||\\u6211\\u542c\\u4e0d\\u61c2\\u4f60\\u8bf4\\u4ec0\\u4e48\",\"keywords\":\"((\\u91cd|\\u91cd\\u65b0|\\u518d)(\\u8bb2|\\u8bf4))||((\\u8bf4|\\u8bb2).*(\\u4ec0\\u4e48|\\u5565))||((\\u6211|\\u542c).*(\\u4e0d\\u61c2|\\u4e0d\\u660e\\u767d))\",\"nodeType\":1,\"defaultnode\":false,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184403\",\"nodeId\":\"1539171226189\",\"positionX\":4350,\"positionY\":920,\"desirecont\":\"\\u6709\\u610f\\u613f\"}"
1045 | },
1046 | {
1047 | "conditionId": "184409",
1048 | "title": "马上还",
1049 | "typeId": "",
1050 | "intention": "?",
1051 | "keywords": "可以||能||好||可以||行||OK||马上还\n",
1052 | "labelData": "我立马还款||现在就还||等一下就还||晚点就还",
1053 | "defaultFlag": "",
1054 | "actionCode": "",
1055 | "targetNodeId": "184771",
1056 | "nodeJsonFrontend": "{\"name\":\"\\u9a6c\\u4e0a\\u8fd8\",\"procId\":\"\",\"labelData\":\"\\u6211\\u7acb\\u9a6c\\u8fd8\\u6b3e||\\u73b0\\u5728\\u5c31\\u8fd8||\\u7b49\\u4e00\\u4e0b\\u5c31\\u8fd8||\\u665a\\u70b9\\u5c31\\u8fd8\",\"keywords\":\"\\u53ef\\u4ee5||\\u80fd||\\u597d||\\u53ef\\u4ee5||\\u884c||OK||\\u9a6c\\u4e0a\\u8fd8\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184409\",\"nodeId\":\"1539171481264\",\"positionX\":4790,\"positionY\":920}"
1057 | },
1058 | {
1059 | "conditionId": "184383",
1060 | "title": "问卡尾号",
1061 | "typeId": "",
1062 | "intention": "?",
1063 | "keywords": "",
1064 | "labelData": "尾号是多少||哪张信用卡||我卡的尾号是多少\n",
1065 | "defaultFlag": "",
1066 | "actionCode": "",
1067 | "targetNodeId": "184488",
1068 | "nodeJsonFrontend": "{\"name\":\"\\u95ee\\u5361\\u5c3e\\u53f7\",\"procId\":\"\",\"labelData\":\"\\u5c3e\\u53f7\\u662f\\u591a\\u5c11||\\u54ea\\u5f20\\u4fe1\\u7528\\u5361||\\u6211\\u5361\\u7684\\u5c3e\\u53f7\\u662f\\u591a\\u5c11\\n\",\"keywords\":\"\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184383\",\"nodeId\":\"1539170594943\",\"positionX\":3250,\"positionY\":920}"
1069 | },
1070 | {
1071 | "conditionId": "184337",
1072 | "title": "少还点",
1073 | "typeId": "",
1074 | "intention": "?",
1075 | "keywords": "少还点\n",
1076 | "labelData": "能不能少还点||我少还一点||少还一点可以吗||可不可以少换一点||我想少还一点可以吗\n",
1077 | "defaultFlag": "",
1078 | "actionCode": "",
1079 | "targetNodeId": "184434",
1080 | "nodeJsonFrontend": "{\"name\":\"\\u5c11\\u8fd8\\u70b9\",\"procId\":\"\",\"labelData\":\"\\u80fd\\u4e0d\\u80fd\\u5c11\\u8fd8\\u70b9||\\u6211\\u5c11\\u8fd8\\u4e00\\u70b9||\\u5c11\\u8fd8\\u4e00\\u70b9\\u53ef\\u4ee5\\u5417||\\u53ef\\u4e0d\\u53ef\\u4ee5\\u5c11\\u6362\\u4e00\\u70b9||\\u6211\\u60f3\\u5c11\\u8fd8\\u4e00\\u70b9\\u53ef\\u4ee5\\u5417\\n\",\"keywords\":\"\\u5c11\\u8fd8\\u70b9\\n\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184337\",\"nodeId\":\"1539168361905\",\"positionX\":710,\"positionY\":920}"
1081 | },
1082 | {
1083 | "conditionId": "184366",
1084 | "title": "询问信用额度",
1085 | "typeId": "",
1086 | "intention": "?",
1087 | "keywords": "信用额度||卡额度||",
1088 | "labelData": "我的信用额度是多少||我卡的额度是多少||我的卡有多少额度||信用额度多少||卡额度多少\n",
1089 | "defaultFlag": "",
1090 | "actionCode": "",
1091 | "targetNodeId": "184468",
1092 | "nodeJsonFrontend": "{\"name\":\"\\u8be2\\u95ee\\u4fe1\\u7528\\u989d\\u5ea6\",\"procId\":\"\",\"labelData\":\"\\u6211\\u7684\\u4fe1\\u7528\\u989d\\u5ea6\\u662f\\u591a\\u5c11||\\u6211\\u5361\\u7684\\u989d\\u5ea6\\u662f\\u591a\\u5c11||\\u6211\\u7684\\u5361\\u6709\\u591a\\u5c11\\u989d\\u5ea6||\\u4fe1\\u7528\\u989d\\u5ea6\\u591a\\u5c11||\\u5361\\u989d\\u5ea6\\u591a\\u5c11\\n\",\"keywords\":\"\\u4fe1\\u7528\\u989d\\u5ea6||\\u5361\\u989d\\u5ea6||\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184366\",\"nodeId\":\"1539170131794\",\"positionX\":2260,\"positionY\":920}"
1093 | },
1094 | {
1095 | "conditionId": "184192",
1096 | "title": "质疑机器人",
1097 | "typeId": "",
1098 | "intention": "?",
1099 | "keywords": "你.*是.*(人|机器)",
1100 | "labelData": "你是机器人吗||你是人吗||你是真人吗||你是人工客服吗||你是机器人客服吗||你是男的么||你是女的么||你长得好看么||你有生命么||你不是人吗||你是不是人||你是不是机器人",
1101 | "defaultFlag": "",
1102 | "actionCode": "",
1103 | "targetNodeId": "184508",
1104 | "nodeJsonFrontend": "{\"name\":\"\\u8d28\\u7591\\u673a\\u5668\\u4eba\",\"procId\":\"\",\"labelData\":\"\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u771f\\u4eba\\u5417||\\u4f60\\u662f\\u4eba\\u5de5\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u673a\\u5668\\u4eba\\u5ba2\\u670d\\u5417||\\u4f60\\u662f\\u7537\\u7684\\u4e48||\\u4f60\\u662f\\u5973\\u7684\\u4e48||\\u4f60\\u957f\\u5f97\\u597d\\u770b\\u4e48||\\u4f60\\u6709\\u751f\\u547d\\u4e48||\\u4f60\\u4e0d\\u662f\\u4eba\\u5417||\\u4f60\\u662f\\u4e0d\\u662f\\u4eba||\\u4f60\\u662f\\u4e0d\\u662f\\u673a\\u5668\\u4eba\",\"keywords\":\"\\u4f60.*\\u662f.*(\\u4eba|\\u673a\\u5668)\",\"nodeType\":1,\"defaultnode\":null,\"actionCode\":\"\",\"keep\":null,\"isnode\":2,\"className\":\"node-process_default\",\"removable\":true,\"id\":\"184192\",\"nodeId\":\"1539171360554\",\"positionX\":4680,\"positionY\":920,\"desirecont\":null}"
1105 | }
1106 | ],
1107 | "op": "",
1108 | "reply": "",
1109 | "labelData": "",
1110 | "keywords": "",
1111 | "nodeJsonFrontend": "{\"name\":\"9 \\u8fd8\\u6b3e\\u63d0\\u9192\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u672c\\u6b21\\u901a\\u8bdd\\u5c06\\u5168\\u7a0b\\u5f55\\u97f3\\uff0c\\u7ed9\\u60a8\\u6765\\u7535\\u4e3b\\u8981\\u662f\\u63d0\\u9192\\u60a8\\uff0c\\u60a8\\u5c3e\\u53f7{STATUS2}\\u7684\\u4fe1\\u7528\\u5361\\u76ee\\u524d\\u5df2\\u7ecf\\u903e\\u671f\\uff0c\\u6b20\\u6b3e\\u91d1\\u989d\\u4e3a{Case_Amt}\\u5143\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u5904\\u7406\\u5230\\u4f4d\\u3002||\\u60a8\\u597d\\uff0c\\u672c\\u6b21\\u901a\\u8bdd\\u5168\\u7a0b\\u5f55\\u97f3\\uff0c\\u60a8\\u5c3e\\u53f7{STATUS2}\\u7684\\u4fe1\\u7528\\u5361\\u5df2\\u7ecf\\u903e\\u671f\\uff0c\\u6b20\\u6b3e\\u91d1\\u989d\\u4e3a{Case_Amt}\\u5143\\uff0c\\u4e3a\\u4e86\\u907f\\u514d\\u4fe1\\u7528\\u5361\\u98ce\\u9669\\u7ee7\\u7eed\\u4e0a\\u5347\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u6b3e\\u3002\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":null,\"back\":null,\"keep\":null,\"className\":\"node-process\",\"removable\":true,\"istable\":null,\"id\":\"184313\",\"nodeId\":\"1539227414237\",\"positionX\":4350,\"positionY\":990}"
1112 | },
1113 | "184411": {
1114 | "nodeId": "184411",
1115 | "title": "10再次还款提醒",
1116 | "nodeType": "Keep",
1117 | "content": "您好,我是交通银行信用卡中心的,本次致电是提醒您,今天下午六点前必须还款了||这边已经提醒到位了,不按时还款会造成的影响您也已经知晓,这边看您的还款结果了\n",
1118 | "actionCode": "",
1119 | "conditions": [],
1120 | "op": "",
1121 | "reply": "",
1122 | "labelData": "",
1123 | "keywords": "",
1124 | "nodeJsonFrontend": "{\"name\":\"10\\u518d\\u6b21\\u8fd8\\u6b3e\\u63d0\\u9192\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\uff0c\\u672c\\u6b21\\u81f4\\u7535\\u662f\\u63d0\\u9192\\u60a8\\uff0c\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u5fc5\\u987b\\u8fd8\\u6b3e\\u4e86||\\u8fd9\\u8fb9\\u5df2\\u7ecf\\u63d0\\u9192\\u5230\\u4f4d\\u4e86\\uff0c\\u4e0d\\u6309\\u65f6\\u8fd8\\u6b3e\\u4f1a\\u9020\\u6210\\u7684\\u5f71\\u54cd\\u60a8\\u4e5f\\u5df2\\u7ecf\\u77e5\\u6653\\uff0c\\u8fd9\\u8fb9\\u770b\\u60a8\\u7684\\u8fd8\\u6b3e\\u7ed3\\u679c\\u4e86\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184411\",\"nodeId\":\"1539171728662\",\"positionX\":40,\"positionY\":980}"
1125 | },
1126 | "184431": {
1127 | "nodeId": "184431",
1128 | "title": "11不能还款",
1129 | "nodeType": "Keep",
1130 | "content": "今天下午六点,总行会对滞纳客户进行统一查账的,如果查不到您的应还款项,您的个人欠款案件可能需要上报总行备案,届时本通录音将作为你无力还款的依据一同上报,麻烦再次确认下,你是否可以在今天下午六点前还款。||劝您还是跟亲戚朋友周转一下,钱也不是特别多。在下午六点前处理好,否则不仅会进一步影响您的信用记录,还会影响您的卡片使用的,还请今天务必还款。||逾期还会产生违约金和罚息,您的损失会越来越大,还是尽快还款吧。||今天下午六点,银行如果还查不到您的应还款项,您的个人欠款案件可能需要上报总行备案,届时本通录音将作为你无力还款的依据一同上报,请您今天务必还款了。||尽快跟亲戚朋友周转一下,在下午六点前处理好,否则不仅会进一步影响您的信用记录,还会影响您的卡片使用的,还请今天务必还款。||逾期还会产生违约金和罚息,您的损失会越来越大,还是尽快还款吧。\n",
1131 | "actionCode": "",
1132 | "conditions": [],
1133 | "op": "",
1134 | "reply": "",
1135 | "labelData": "",
1136 | "keywords": "",
1137 | "nodeJsonFrontend": "{\"name\":\"11\\u4e0d\\u80fd\\u8fd8\\u6b3e\",\"procId\":\"\",\"content\":\"\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\uff0c\\u603b\\u884c\\u4f1a\\u5bf9\\u6ede\\u7eb3\\u5ba2\\u6237\\u8fdb\\u884c\\u7edf\\u4e00\\u67e5\\u8d26\\u7684\\uff0c\\u5982\\u679c\\u67e5\\u4e0d\\u5230\\u60a8\\u7684\\u5e94\\u8fd8\\u6b3e\\u9879\\uff0c\\u60a8\\u7684\\u4e2a\\u4eba\\u6b20\\u6b3e\\u6848\\u4ef6\\u53ef\\u80fd\\u9700\\u8981\\u4e0a\\u62a5\\u603b\\u884c\\u5907\\u6848\\uff0c\\u5c4a\\u65f6\\u672c\\u901a\\u5f55\\u97f3\\u5c06\\u4f5c\\u4e3a\\u4f60\\u65e0\\u529b\\u8fd8\\u6b3e\\u7684\\u4f9d\\u636e\\u4e00\\u540c\\u4e0a\\u62a5\\uff0c\\u9ebb\\u70e6\\u518d\\u6b21\\u786e\\u8ba4\\u4e0b\\uff0c\\u4f60\\u662f\\u5426\\u53ef\\u4ee5\\u5728\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u8fd8\\u6b3e\\u3002||\\u529d\\u60a8\\u8fd8\\u662f\\u8ddf\\u4eb2\\u621a\\u670b\\u53cb\\u5468\\u8f6c\\u4e00\\u4e0b\\uff0c\\u94b1\\u4e5f\\u4e0d\\u662f\\u7279\\u522b\\u591a\\u3002\\u5728\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u5904\\u7406\\u597d\\uff0c\\u5426\\u5219\\u4e0d\\u4ec5\\u4f1a\\u8fdb\\u4e00\\u6b65\\u5f71\\u54cd\\u60a8\\u7684\\u4fe1\\u7528\\u8bb0\\u5f55\\uff0c\\u8fd8\\u4f1a\\u5f71\\u54cd\\u60a8\\u7684\\u5361\\u7247\\u4f7f\\u7528\\u7684\\uff0c\\u8fd8\\u8bf7\\u4eca\\u5929\\u52a1\\u5fc5\\u8fd8\\u6b3e\\u3002||\\u903e\\u671f\\u8fd8\\u4f1a\\u4ea7\\u751f\\u8fdd\\u7ea6\\u91d1\\u548c\\u7f5a\\u606f\\uff0c\\u60a8\\u7684\\u635f\\u5931\\u4f1a\\u8d8a\\u6765\\u8d8a\\u5927\\uff0c\\u8fd8\\u662f\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u5427\\u3002||\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\uff0c\\u94f6\\u884c\\u5982\\u679c\\u8fd8\\u67e5\\u4e0d\\u5230\\u60a8\\u7684\\u5e94\\u8fd8\\u6b3e\\u9879\\uff0c\\u60a8\\u7684\\u4e2a\\u4eba\\u6b20\\u6b3e\\u6848\\u4ef6\\u53ef\\u80fd\\u9700\\u8981\\u4e0a\\u62a5\\u603b\\u884c\\u5907\\u6848\\uff0c\\u5c4a\\u65f6\\u672c\\u901a\\u5f55\\u97f3\\u5c06\\u4f5c\\u4e3a\\u4f60\\u65e0\\u529b\\u8fd8\\u6b3e\\u7684\\u4f9d\\u636e\\u4e00\\u540c\\u4e0a\\u62a5\\uff0c\\u8bf7\\u60a8\\u4eca\\u5929\\u52a1\\u5fc5\\u8fd8\\u6b3e\\u4e86\\u3002||\\u5c3d\\u5feb\\u8ddf\\u4eb2\\u621a\\u670b\\u53cb\\u5468\\u8f6c\\u4e00\\u4e0b\\uff0c\\u5728\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u5904\\u7406\\u597d\\uff0c\\u5426\\u5219\\u4e0d\\u4ec5\\u4f1a\\u8fdb\\u4e00\\u6b65\\u5f71\\u54cd\\u60a8\\u7684\\u4fe1\\u7528\\u8bb0\\u5f55\\uff0c\\u8fd8\\u4f1a\\u5f71\\u54cd\\u60a8\\u7684\\u5361\\u7247\\u4f7f\\u7528\\u7684\\uff0c\\u8fd8\\u8bf7\\u4eca\\u5929\\u52a1\\u5fc5\\u8fd8\\u6b3e\\u3002||\\u903e\\u671f\\u8fd8\\u4f1a\\u4ea7\\u751f\\u8fdd\\u7ea6\\u91d1\\u548c\\u7f5a\\u606f\\uff0c\\u60a8\\u7684\\u635f\\u5931\\u4f1a\\u8d8a\\u6765\\u8d8a\\u5927\\uff0c\\u8fd8\\u662f\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u5427\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184431\",\"nodeId\":\"1539227842857\",\"positionX\":270,\"positionY\":980}"
1138 | },
1139 | "184434": {
1140 | "nodeId": "184434",
1141 | "title": "42少还一点",
1142 | "nodeType": "Keep",
1143 | "content": "银行这边联系到您,是要判定您的还款诚意的,这边给您争取一下,可以先还一个最低额度{Due_Amt}元,总行规定今天款项是必须处理到位的,您这边越拖越久,还的钱会越来越多,请您尽快周转一下,在今天六点前务必处理到位可以吗?\n",
1144 | "actionCode": "",
1145 | "conditions": [],
1146 | "op": "",
1147 | "reply": "",
1148 | "labelData": "",
1149 | "keywords": "",
1150 | "nodeJsonFrontend": "{\"name\":\"42\\u5c11\\u8fd8\\u4e00\\u70b9\",\"procId\":\"\",\"content\":\"\\u94f6\\u884c\\u8fd9\\u8fb9\\u8054\\u7cfb\\u5230\\u60a8\\uff0c\\u662f\\u8981\\u5224\\u5b9a\\u60a8\\u7684\\u8fd8\\u6b3e\\u8bda\\u610f\\u7684\\uff0c\\u8fd9\\u8fb9\\u7ed9\\u60a8\\u4e89\\u53d6\\u4e00\\u4e0b\\uff0c\\u53ef\\u4ee5\\u5148\\u8fd8\\u4e00\\u4e2a\\u6700\\u4f4e\\u989d\\u5ea6{Due_Amt}\\u5143\\uff0c\\u603b\\u884c\\u89c4\\u5b9a\\u4eca\\u5929\\u6b3e\\u9879\\u662f\\u5fc5\\u987b\\u5904\\u7406\\u5230\\u4f4d\\u7684\\uff0c\\u60a8\\u8fd9\\u8fb9\\u8d8a\\u62d6\\u8d8a\\u4e45\\uff0c\\u8fd8\\u7684\\u94b1\\u4f1a\\u8d8a\\u6765\\u8d8a\\u591a\\uff0c\\u8bf7\\u60a8\\u5c3d\\u5feb\\u5468\\u8f6c\\u4e00\\u4e0b\\uff0c\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u52a1\\u5fc5\\u5904\\u7406\\u5230\\u4f4d\\u53ef\\u4ee5\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184434\",\"nodeId\":\"1539171943265\",\"positionX\":710,\"positionY\":980}"
1151 | },
1152 | "184438": {
1153 | "nodeId": "184438",
1154 | "title": "43 怎么还款",
1155 | "nodeType": "Keep",
1156 | "content": "您可以通过微信、支付宝、拉卡拉等方式还款的。如需查询更多还款方式可登录我行[=hang2]信用卡网站查询,您是确定在今天六点前可以处理好,是吗?||微信、支付宝、拉卡拉等方式都是可以的,具体您也可以登陆我行[=hang2]网站查询,您确定今天能够还款,对吗?\n",
1157 | "actionCode": "",
1158 | "conditions": [],
1159 | "op": "",
1160 | "reply": "",
1161 | "labelData": "",
1162 | "keywords": "",
1163 | "nodeJsonFrontend": "{\"name\":\"43 \\u600e\\u4e48\\u8fd8\\u6b3e\",\"procId\":\"\",\"content\":\"\\u60a8\\u53ef\\u4ee5\\u901a\\u8fc7\\u5fae\\u4fe1\\u3001\\u652f\\u4ed8\\u5b9d\\u3001\\u62c9\\u5361\\u62c9\\u7b49\\u65b9\\u5f0f\\u8fd8\\u6b3e\\u7684\\u3002\\u5982\\u9700\\u67e5\\u8be2\\u66f4\\u591a\\u8fd8\\u6b3e\\u65b9\\u5f0f\\u53ef\\u767b\\u5f55\\u6211\\u884c[=hang2]\\u4fe1\\u7528\\u5361\\u7f51\\u7ad9\\u67e5\\u8be2\\uff0c\\u60a8\\u662f\\u786e\\u5b9a\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u53ef\\u4ee5\\u5904\\u7406\\u597d\\uff0c\\u662f\\u5417\\uff1f||\\u5fae\\u4fe1\\u3001\\u652f\\u4ed8\\u5b9d\\u3001\\u62c9\\u5361\\u62c9\\u7b49\\u65b9\\u5f0f\\u90fd\\u662f\\u53ef\\u4ee5\\u7684\\uff0c\\u5177\\u4f53\\u60a8\\u4e5f\\u53ef\\u4ee5\\u767b\\u9646\\u6211\\u884c[=hang2]\\u7f51\\u7ad9\\u67e5\\u8be2\\uff0c\\u60a8\\u786e\\u5b9a\\u4eca\\u5929\\u80fd\\u591f\\u8fd8\\u6b3e\\uff0c\\u5bf9\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184438\",\"nodeId\":\"1539171991457\",\"positionX\":820,\"positionY\":980}"
1164 | },
1165 | "184440": {
1166 | "nodeId": "184440",
1167 | "title": "44咨询利息",
1168 | "nodeType": "Keep",
1169 | "content": "利息和费用的问题您可以致电交行信用卡客服热线4008833116进行咨询,为了避免费息进一步增加,请您务必在今天安排还款。你可以还上吗?||抱歉,这边给您来电主要是确认您逾期还款的个人信用情况,目前您对于利息相应的解答,可以先拨打我行[=hang2]热线4008833116咨询一下,但请您务必按约定准时还款,否则会进一步影响您在银行这边的信誉了。你可以还上吗?\n",
1170 | "actionCode": "",
1171 | "conditions": [],
1172 | "op": "",
1173 | "reply": "",
1174 | "labelData": "",
1175 | "keywords": "",
1176 | "nodeJsonFrontend": "{\"name\":\"44\\u54a8\\u8be2\\u5229\\u606f\",\"procId\":\"\",\"content\":\"\\u5229\\u606f\\u548c\\u8d39\\u7528\\u7684\\u95ee\\u9898\\u60a8\\u53ef\\u4ee5\\u81f4\\u7535\\u4ea4\\u884c\\u4fe1\\u7528\\u5361\\u5ba2\\u670d\\u70ed\\u7ebf4008833116\\u8fdb\\u884c\\u54a8\\u8be2\\uff0c\\u4e3a\\u4e86\\u907f\\u514d\\u8d39\\u606f\\u8fdb\\u4e00\\u6b65\\u589e\\u52a0\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u5b89\\u6392\\u8fd8\\u6b3e\\u3002\\u4f60\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5417\\uff1f||\\u62b1\\u6b49\\uff0c\\u8fd9\\u8fb9\\u7ed9\\u60a8\\u6765\\u7535\\u4e3b\\u8981\\u662f\\u786e\\u8ba4\\u60a8\\u903e\\u671f\\u8fd8\\u6b3e\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u60c5\\u51b5\\uff0c\\u76ee\\u524d\\u60a8\\u5bf9\\u4e8e\\u5229\\u606f\\u76f8\\u5e94\\u7684\\u89e3\\u7b54\\uff0c\\u53ef\\u4ee5\\u5148\\u62e8\\u6253\\u6211\\u884c[=hang2]\\u70ed\\u7ebf4008833116\\u54a8\\u8be2\\u4e00\\u4e0b\\uff0c\\u4f46\\u8bf7\\u60a8\\u52a1\\u5fc5\\u6309\\u7ea6\\u5b9a\\u51c6\\u65f6\\u8fd8\\u6b3e\\uff0c\\u5426\\u5219\\u4f1a\\u8fdb\\u4e00\\u6b65\\u5f71\\u54cd\\u60a8\\u5728\\u94f6\\u884c\\u8fd9\\u8fb9\\u7684\\u4fe1\\u8a89\\u4e86\\u3002\\u4f60\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184440\",\"nodeId\":\"1539172063014\",\"positionX\":930,\"positionY\":980}"
1177 | },
1178 | "184446": {
1179 | "nodeId": "184446",
1180 | "title": "45咨询手续费",
1181 | "nodeType": "Keep",
1182 | "content": "抱歉,这边给您来电主要是确认您逾期还款的个人信用情况,目前您对于手续费相应的解答,可以先拨打我行[=hang2]热线4008833116咨询一下,但请您务必按约定准时还款,否则会进一步影响您在银行这边的信誉了。你可以按时还上吗?\n",
1183 | "actionCode": "",
1184 | "conditions": [],
1185 | "op": "",
1186 | "reply": "",
1187 | "labelData": "",
1188 | "keywords": "",
1189 | "nodeJsonFrontend": "{\"name\":\"45\\u54a8\\u8be2\\u624b\\u7eed\\u8d39\",\"procId\":\"\",\"content\":\"\\u62b1\\u6b49\\uff0c\\u8fd9\\u8fb9\\u7ed9\\u60a8\\u6765\\u7535\\u4e3b\\u8981\\u662f\\u786e\\u8ba4\\u60a8\\u903e\\u671f\\u8fd8\\u6b3e\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u60c5\\u51b5\\uff0c\\u76ee\\u524d\\u60a8\\u5bf9\\u4e8e\\u624b\\u7eed\\u8d39\\u76f8\\u5e94\\u7684\\u89e3\\u7b54\\uff0c\\u53ef\\u4ee5\\u5148\\u62e8\\u6253\\u6211\\u884c[=hang2]\\u70ed\\u7ebf4008833116\\u54a8\\u8be2\\u4e00\\u4e0b\\uff0c\\u4f46\\u8bf7\\u60a8\\u52a1\\u5fc5\\u6309\\u7ea6\\u5b9a\\u51c6\\u65f6\\u8fd8\\u6b3e\\uff0c\\u5426\\u5219\\u4f1a\\u8fdb\\u4e00\\u6b65\\u5f71\\u54cd\\u60a8\\u5728\\u94f6\\u884c\\u8fd9\\u8fb9\\u7684\\u4fe1\\u8a89\\u4e86\\u3002\\u4f60\\u53ef\\u4ee5\\u6309\\u65f6\\u8fd8\\u4e0a\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184446\",\"nodeId\":\"1539172096409\",\"positionX\":1040,\"positionY\":980}"
1190 | },
1191 | "184448": {
1192 | "nodeId": "184448",
1193 | "title": "46咨询银行",
1194 | "nodeType": "Keep",
1195 | "content": "您好,是交通银行,您在我行[=hang2]的信用卡已经逾期,欠款金额为{Case_Amt}元,请您务必在今天六点前还上以避免出现个人信用问题。\n",
1196 | "actionCode": "",
1197 | "conditions": [],
1198 | "op": "",
1199 | "reply": "",
1200 | "labelData": "",
1201 | "keywords": "",
1202 | "nodeJsonFrontend": "{\"name\":\"46\\u54a8\\u8be2\\u94f6\\u884c\",\"procId\":\"\",\"content\":\"\\u60a8\\u597d\\uff0c\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\uff0c\\u60a8\\u5728\\u6211\\u884c[=hang2]\\u7684\\u4fe1\\u7528\\u5361\\u5df2\\u7ecf\\u903e\\u671f\\uff0c\\u6b20\\u6b3e\\u91d1\\u989d\\u4e3a{Case_Amt}\\u5143\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u4e0a\\u4ee5\\u907f\\u514d\\u51fa\\u73b0\\u4e2a\\u4eba\\u4fe1\\u7528\\u95ee\\u9898\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184448\",\"nodeId\":\"1539172179029\",\"positionX\":1380,\"positionY\":990}"
1203 | },
1204 | "184452": {
1205 | "nodeId": "184452",
1206 | "title": "47咨询欠款",
1207 | "nodeType": "Keep",
1208 | "content": "你好,系统显示全额为{Case_Amt}元,请您务必在今天六点前还上。||欠款全额为{Case_Amt}元,您今天六点前可以还上吗。||{Case_Amt}元,今天能不能还上。\n",
1209 | "actionCode": "",
1210 | "conditions": [],
1211 | "op": "",
1212 | "reply": "",
1213 | "labelData": "",
1214 | "keywords": "",
1215 | "nodeJsonFrontend": "{\"name\":\"47\\u54a8\\u8be2\\u6b20\\u6b3e\",\"procId\":\"\",\"content\":\"\\u4f60\\u597d\\uff0c\\u7cfb\\u7edf\\u663e\\u793a\\u5168\\u989d\\u4e3a{Case_Amt}\\u5143\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u4e0a\\u3002||\\u6b20\\u6b3e\\u5168\\u989d\\u4e3a{Case_Amt}\\u5143\\uff0c\\u60a8\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5417\\u3002||{Case_Amt}\\u5143\\uff0c\\u4eca\\u5929\\u80fd\\u4e0d\\u80fd\\u8fd8\\u4e0a\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184452\",\"nodeId\":\"1539172210814\",\"positionX\":1490,\"positionY\":990}"
1216 | },
1217 | "184454": {
1218 | "nodeId": "184454",
1219 | "title": "48咨询逾期",
1220 | "nodeType": "Keep",
1221 | "content": "这边是催收部门,没办法为您查询,请您务必在今天六点前还清欠款,没有钱找家人朋友周转一下。给您这么长时间去周转,如果还不还,银行这边会质疑您的还款诚意了。\n",
1222 | "actionCode": "",
1223 | "conditions": [],
1224 | "op": "",
1225 | "reply": "",
1226 | "labelData": "",
1227 | "keywords": "",
1228 | "nodeJsonFrontend": "{\"name\":\"48\\u54a8\\u8be2\\u903e\\u671f\",\"procId\":\"\",\"content\":\"\\u8fd9\\u8fb9\\u662f\\u50ac\\u6536\\u90e8\\u95e8\\uff0c\\u6ca1\\u529e\\u6cd5\\u4e3a\\u60a8\\u67e5\\u8be2\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u6e05\\u6b20\\u6b3e\\uff0c\\u6ca1\\u6709\\u94b1\\u627e\\u5bb6\\u4eba\\u670b\\u53cb\\u5468\\u8f6c\\u4e00\\u4e0b\\u3002\\u7ed9\\u60a8\\u8fd9\\u4e48\\u957f\\u65f6\\u95f4\\u53bb\\u5468\\u8f6c\\uff0c\\u5982\\u679c\\u8fd8\\u4e0d\\u8fd8\\uff0c\\u94f6\\u884c\\u8fd9\\u8fb9\\u4f1a\\u8d28\\u7591\\u60a8\\u7684\\u8fd8\\u6b3e\\u8bda\\u610f\\u4e86\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184454\",\"nodeId\":\"1539172290600\",\"positionX\":1600,\"positionY\":990}"
1229 | },
1230 | "184458": {
1231 | "nodeId": "184458",
1232 | "title": "49不方便还",
1233 | "nodeType": "Keep",
1234 | "content": "用微信、支付宝就可以还款,银行今天六点前就要查账了,尽快还款,否则一切后果自负。",
1235 | "actionCode": "",
1236 | "conditions": [],
1237 | "op": "",
1238 | "reply": "",
1239 | "labelData": "",
1240 | "keywords": "",
1241 | "nodeJsonFrontend": "{\"name\":\"49\\u4e0d\\u65b9\\u4fbf\\u8fd8\",\"procId\":\"\",\"content\":\"\\u7528\\u5fae\\u4fe1\\u3001\\u652f\\u4ed8\\u5b9d\\u5c31\\u53ef\\u4ee5\\u8fd8\\u6b3e\\uff0c\\u94f6\\u884c\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u5c31\\u8981\\u67e5\\u8d26\\u4e86\\uff0c\\u5c3d\\u5feb\\u8fd8\\u6b3e\\uff0c\\u5426\\u5219\\u4e00\\u5207\\u540e\\u679c\\u81ea\\u8d1f\\u3002\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184458\",\"nodeId\":\"1539172339982\",\"positionX\":1710,\"positionY\":990}"
1242 | },
1243 | "184460": {
1244 | "nodeId": "184460",
1245 | "title": "50最低还款",
1246 | "nodeType": "Normal",
1247 | "content": "银行这边联系到您,是要判定您的还款诚意的,这边给您争取一下,可以先还一个最低额度{Due_Amt}元,总行规定今天款项是必须处理到位的,您这边越拖越久,还的钱会越来越多,请您尽快周转一下,在今天六点前务必处理到位可以吗?\n",
1248 | "actionCode": "",
1249 | "conditions": [],
1250 | "op": "",
1251 | "reply": "",
1252 | "labelData": "",
1253 | "keywords": "",
1254 | "nodeJsonFrontend": "{\"name\":\"50\\u6700\\u4f4e\\u8fd8\\u6b3e\",\"procId\":\"\",\"content\":\"\\u94f6\\u884c\\u8fd9\\u8fb9\\u8054\\u7cfb\\u5230\\u60a8\\uff0c\\u662f\\u8981\\u5224\\u5b9a\\u60a8\\u7684\\u8fd8\\u6b3e\\u8bda\\u610f\\u7684\\uff0c\\u8fd9\\u8fb9\\u7ed9\\u60a8\\u4e89\\u53d6\\u4e00\\u4e0b\\uff0c\\u53ef\\u4ee5\\u5148\\u8fd8\\u4e00\\u4e2a\\u6700\\u4f4e\\u989d\\u5ea6{Due_Amt}\\u5143\\uff0c\\u603b\\u884c\\u89c4\\u5b9a\\u4eca\\u5929\\u6b3e\\u9879\\u662f\\u5fc5\\u987b\\u5904\\u7406\\u5230\\u4f4d\\u7684\\uff0c\\u60a8\\u8fd9\\u8fb9\\u8d8a\\u62d6\\u8d8a\\u4e45\\uff0c\\u8fd8\\u7684\\u94b1\\u4f1a\\u8d8a\\u6765\\u8d8a\\u591a\\uff0c\\u8bf7\\u60a8\\u5c3d\\u5feb\\u5468\\u8f6c\\u4e00\\u4e0b\\uff0c\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u52a1\\u5fc5\\u5904\\u7406\\u5230\\u4f4d\\u53ef\\u4ee5\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":false,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184460\",\"nodeId\":\"1539172378854\",\"positionX\":1820,\"positionY\":990}"
1255 | },
1256 | "184462": {
1257 | "nodeId": "184462",
1258 | "title": "51 还款时间",
1259 | "nodeType": "Keep",
1260 | "content": "请您在今天六点前务必将欠款处理到位,否则可能会影响您的个人信用及卡片使用。\n",
1261 | "actionCode": "",
1262 | "conditions": [],
1263 | "op": "",
1264 | "reply": "",
1265 | "labelData": "",
1266 | "keywords": "",
1267 | "nodeJsonFrontend": "{\"name\":\"51 \\u8fd8\\u6b3e\\u65f6\\u95f4\",\"procId\":\"\",\"content\":\"\\u8bf7\\u60a8\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u52a1\\u5fc5\\u5c06\\u6b20\\u6b3e\\u5904\\u7406\\u5230\\u4f4d\\uff0c\\u5426\\u5219\\u53ef\\u80fd\\u4f1a\\u5f71\\u54cd\\u60a8\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u53ca\\u5361\\u7247\\u4f7f\\u7528\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184462\",\"nodeId\":\"1539172414194\",\"positionX\":1930,\"positionY\":990}"
1268 | },
1269 | "184464": {
1270 | "nodeId": "184464",
1271 | "title": "52欠款多",
1272 | "nodeType": "Keep",
1273 | "content": "如果您对账单有疑问,还请您拨打客服电话进行咨询,这边是催收部门的,还是要提醒您,今天六点前务必要还款到位,否则将影响您的卡片使用的,同时我们不排除向总行上报你的个人信用记录。||这边系统显示,您确实是欠款并且逾期了,如果不能在今天六点前还上,就会影响您的卡片使用了,{Case_Amt}元,还请您尽快还款。||账单问题建议您拨打客服电话进行咨询,不过烦请今天务必于下午六点前把欠款金额{Case_Amt}元还上,否则银行会认为您故意拖欠,上报总行处理了。\n",
1274 | "actionCode": "",
1275 | "conditions": [],
1276 | "op": "",
1277 | "reply": "",
1278 | "labelData": "",
1279 | "keywords": "",
1280 | "nodeJsonFrontend": "{\"name\":\"52\\u6b20\\u6b3e\\u591a\",\"procId\":\"\",\"content\":\"\\u5982\\u679c\\u60a8\\u5bf9\\u8d26\\u5355\\u6709\\u7591\\u95ee\\uff0c\\u8fd8\\u8bf7\\u60a8\\u62e8\\u6253\\u5ba2\\u670d\\u7535\\u8bdd\\u8fdb\\u884c\\u54a8\\u8be2\\uff0c\\u8fd9\\u8fb9\\u662f\\u50ac\\u6536\\u90e8\\u95e8\\u7684\\uff0c\\u8fd8\\u662f\\u8981\\u63d0\\u9192\\u60a8\\uff0c\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u52a1\\u5fc5\\u8981\\u8fd8\\u6b3e\\u5230\\u4f4d\\uff0c\\u5426\\u5219\\u5c06\\u5f71\\u54cd\\u60a8\\u7684\\u5361\\u7247\\u4f7f\\u7528\\u7684\\uff0c\\u540c\\u65f6\\u6211\\u4eec\\u4e0d\\u6392\\u9664\\u5411\\u603b\\u884c\\u4e0a\\u62a5\\u4f60\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u8bb0\\u5f55\\u3002||\\u8fd9\\u8fb9\\u7cfb\\u7edf\\u663e\\u793a\\uff0c\\u60a8\\u786e\\u5b9e\\u662f\\u6b20\\u6b3e\\u5e76\\u4e14\\u903e\\u671f\\u4e86\\uff0c\\u5982\\u679c\\u4e0d\\u80fd\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u4e0a\\uff0c\\u5c31\\u4f1a\\u5f71\\u54cd\\u60a8\\u7684\\u5361\\u7247\\u4f7f\\u7528\\u4e86\\uff0c{Case_Amt}\\u5143\\uff0c\\u8fd8\\u8bf7\\u60a8\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u3002||\\u8d26\\u5355\\u95ee\\u9898\\u5efa\\u8bae\\u60a8\\u62e8\\u6253\\u5ba2\\u670d\\u7535\\u8bdd\\u8fdb\\u884c\\u54a8\\u8be2\\uff0c\\u4e0d\\u8fc7\\u70e6\\u8bf7\\u4eca\\u5929\\u52a1\\u5fc5\\u4e8e\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u628a\\u6b20\\u6b3e\\u91d1\\u989d{Case_Amt}\\u5143\\u8fd8\\u4e0a\\uff0c\\u5426\\u5219\\u94f6\\u884c\\u4f1a\\u8ba4\\u4e3a\\u60a8\\u6545\\u610f\\u62d6\\u6b20\\uff0c\\u4e0a\\u62a5\\u603b\\u884c\\u5904\\u7406\\u4e86\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184464\",\"nodeId\":\"1539172447226\",\"positionX\":2040,\"positionY\":990}"
1281 | },
1282 | "184466": {
1283 | "nodeId": "184466",
1284 | "title": "53 发资料",
1285 | "nodeType": "Keep",
1286 | "content": "这边没办法给您发送,您可以通过手机银行或者是邮箱进行查看,微信支付宝绑定的话也是可以看到的,{Case_Amt}元,,您今天可以还上吗?\n",
1287 | "actionCode": "",
1288 | "conditions": [],
1289 | "op": "",
1290 | "reply": "",
1291 | "labelData": "",
1292 | "keywords": "",
1293 | "nodeJsonFrontend": "{\"name\":\"53 \\u53d1\\u8d44\\u6599\",\"procId\":\"\",\"content\":\"\\u8fd9\\u8fb9\\u6ca1\\u529e\\u6cd5\\u7ed9\\u60a8\\u53d1\\u9001\\uff0c\\u60a8\\u53ef\\u4ee5\\u901a\\u8fc7\\u624b\\u673a\\u94f6\\u884c\\u6216\\u8005\\u662f\\u90ae\\u7bb1\\u8fdb\\u884c\\u67e5\\u770b\\uff0c\\u5fae\\u4fe1\\u652f\\u4ed8\\u5b9d\\u7ed1\\u5b9a\\u7684\\u8bdd\\u4e5f\\u662f\\u53ef\\u4ee5\\u770b\\u5230\\u7684\\uff0c{Case_Amt}\\u5143\\uff0c\\uff0c\\u60a8\\u4eca\\u5929\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5417\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184466\",\"nodeId\":\"1539172494301\",\"positionX\":2150,\"positionY\":990}"
1294 | },
1295 | "184468": {
1296 | "nodeId": "184468",
1297 | "title": "54 信用额度",
1298 | "nodeType": "Keep",
1299 | "content": "抱歉,这边是催收部门的,没办法看到您的信用额度,只能看到您的欠款信息,您今天六点前能够还款吗。||这边不清楚相关信息,我们是通知您尽快还款的,否则带来的一切不良后果都由您个人承担,请尽快还款好吗?||这边不清楚,您还是尽快还款吧,这边已经提醒到位了,您到底能不能还上?\n",
1300 | "actionCode": "",
1301 | "conditions": [],
1302 | "op": "",
1303 | "reply": "",
1304 | "labelData": "",
1305 | "keywords": "",
1306 | "nodeJsonFrontend": "{\"name\":\"54 \\u4fe1\\u7528\\u989d\\u5ea6\",\"procId\":\"\",\"content\":\"\\u62b1\\u6b49\\uff0c\\u8fd9\\u8fb9\\u662f\\u50ac\\u6536\\u90e8\\u95e8\\u7684\\uff0c\\u6ca1\\u529e\\u6cd5\\u770b\\u5230\\u60a8\\u7684\\u4fe1\\u7528\\u989d\\u5ea6\\uff0c\\u53ea\\u80fd\\u770b\\u5230\\u60a8\\u7684\\u6b20\\u6b3e\\u4fe1\\u606f\\uff0c\\u60a8\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u80fd\\u591f\\u8fd8\\u6b3e\\u5417\\u3002||\\u8fd9\\u8fb9\\u4e0d\\u6e05\\u695a\\u76f8\\u5173\\u4fe1\\u606f\\uff0c\\u6211\\u4eec\\u662f\\u901a\\u77e5\\u60a8\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u7684\\uff0c\\u5426\\u5219\\u5e26\\u6765\\u7684\\u4e00\\u5207\\u4e0d\\u826f\\u540e\\u679c\\u90fd\\u7531\\u60a8\\u4e2a\\u4eba\\u627f\\u62c5\\uff0c\\u8bf7\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u597d\\u5417\\uff1f||\\u8fd9\\u8fb9\\u4e0d\\u6e05\\u695a\\uff0c\\u60a8\\u8fd8\\u662f\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u5427\\uff0c\\u8fd9\\u8fb9\\u5df2\\u7ecf\\u63d0\\u9192\\u5230\\u4f4d\\u4e86\\uff0c\\u60a8\\u5230\\u5e95\\u80fd\\u4e0d\\u80fd\\u8fd8\\u4e0a\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184468\",\"nodeId\":\"1539172546178\",\"positionX\":2260,\"positionY\":990}"
1307 | },
1308 | "184470": {
1309 | "nodeId": "184470",
1310 | "title": "55 要求分期",
1311 | "nodeType": "Keep",
1312 | "content": "{Cust_Name}{Sex},因您的卡片已经逾期,逾期部分不能办理分期业务,建议您还清欠款。如有问题,请联系客服进行咨询,我行[=hang2]支持客户在未逾期的情况办理分期还款。||当前没办法分期,您这边需要先把欠款还上避免影响你的卡片使用,后期使用我行[=hang2]信用卡可根据你的实际缴款能力办理分期产品。\n",
1313 | "actionCode": "",
1314 | "conditions": [],
1315 | "op": "",
1316 | "reply": "",
1317 | "labelData": "",
1318 | "keywords": "",
1319 | "nodeJsonFrontend": "{\"name\":\"55 \\u8981\\u6c42\\u5206\\u671f\",\"procId\":\"\",\"content\":\"{Cust_Name}{Sex}\\uff0c\\u56e0\\u60a8\\u7684\\u5361\\u7247\\u5df2\\u7ecf\\u903e\\u671f\\uff0c\\u903e\\u671f\\u90e8\\u5206\\u4e0d\\u80fd\\u529e\\u7406\\u5206\\u671f\\u4e1a\\u52a1\\uff0c\\u5efa\\u8bae\\u60a8\\u8fd8\\u6e05\\u6b20\\u6b3e\\u3002\\u5982\\u6709\\u95ee\\u9898\\uff0c\\u8bf7\\u8054\\u7cfb\\u5ba2\\u670d\\u8fdb\\u884c\\u54a8\\u8be2\\uff0c\\u6211\\u884c[=hang2]\\u652f\\u6301\\u5ba2\\u6237\\u5728\\u672a\\u903e\\u671f\\u7684\\u60c5\\u51b5\\u529e\\u7406\\u5206\\u671f\\u8fd8\\u6b3e\\u3002||\\u5f53\\u524d\\u6ca1\\u529e\\u6cd5\\u5206\\u671f\\uff0c\\u60a8\\u8fd9\\u8fb9\\u9700\\u8981\\u5148\\u628a\\u6b20\\u6b3e\\u8fd8\\u4e0a\\u907f\\u514d\\u5f71\\u54cd\\u4f60\\u7684\\u5361\\u7247\\u4f7f\\u7528\\uff0c\\u540e\\u671f\\u4f7f\\u7528\\u6211\\u884c[=hang2]\\u4fe1\\u7528\\u5361\\u53ef\\u6839\\u636e\\u4f60\\u7684\\u5b9e\\u9645\\u7f34\\u6b3e\\u80fd\\u529b\\u529e\\u7406\\u5206\\u671f\\u4ea7\\u54c1\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184470\",\"nodeId\":\"1539172607822\",\"positionX\":2370,\"positionY\":990}"
1320 | },
1321 | "184472": {
1322 | "nodeId": "184472",
1323 | "title": "56 重复催款",
1324 | "nodeType": "Keep",
1325 | "content": "如果您即时还款,这边自然不会再催您,这边已经提醒到位,今天银行会准时进行审核,如果到时查到空账漏账,一切后果由您个人承担,还请您重视一下,今天六点前还款,没问题吧?\n",
1326 | "actionCode": "",
1327 | "conditions": [],
1328 | "op": "",
1329 | "reply": "",
1330 | "labelData": "",
1331 | "keywords": "",
1332 | "nodeJsonFrontend": "{\"name\":\"56 \\u91cd\\u590d\\u50ac\\u6b3e\",\"procId\":\"\",\"content\":\"\\u5982\\u679c\\u60a8\\u5373\\u65f6\\u8fd8\\u6b3e\\uff0c\\u8fd9\\u8fb9\\u81ea\\u7136\\u4e0d\\u4f1a\\u518d\\u50ac\\u60a8\\uff0c\\u8fd9\\u8fb9\\u5df2\\u7ecf\\u63d0\\u9192\\u5230\\u4f4d\\uff0c\\u4eca\\u5929\\u94f6\\u884c\\u4f1a\\u51c6\\u65f6\\u8fdb\\u884c\\u5ba1\\u6838\\uff0c\\u5982\\u679c\\u5230\\u65f6\\u67e5\\u5230\\u7a7a\\u8d26\\u6f0f\\u8d26\\uff0c\\u4e00\\u5207\\u540e\\u679c\\u7531\\u60a8\\u4e2a\\u4eba\\u627f\\u62c5\\uff0c\\u8fd8\\u8bf7\\u60a8\\u91cd\\u89c6\\u4e00\\u4e0b\\uff0c\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u6b3e\\uff0c\\u6ca1\\u95ee\\u9898\\u5427\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184472\",\"nodeId\":\"1539172653825\",\"positionX\":2480,\"positionY\":990}"
1333 | },
1334 | "184474": {
1335 | "nodeId": "184474",
1336 | "title": "57 卡被冻结",
1337 | "nodeType": "Keep",
1338 | "content": "您这边按时还款是不影响使用的,银行要求您今天六点前还款{Case_Amt}元,到时会进行审核,款不到位的话,可能会影响您的卡片使用了。\n",
1339 | "actionCode": "",
1340 | "conditions": [],
1341 | "op": "",
1342 | "reply": "",
1343 | "labelData": "",
1344 | "keywords": "",
1345 | "nodeJsonFrontend": "{\"name\":\"57 \\u5361\\u88ab\\u51bb\\u7ed3\",\"procId\":\"\",\"content\":\"\\u60a8\\u8fd9\\u8fb9\\u6309\\u65f6\\u8fd8\\u6b3e\\u662f\\u4e0d\\u5f71\\u54cd\\u4f7f\\u7528\\u7684\\uff0c\\u94f6\\u884c\\u8981\\u6c42\\u60a8\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u6b3e{Case_Amt}\\u5143\\uff0c\\u5230\\u65f6\\u4f1a\\u8fdb\\u884c\\u5ba1\\u6838\\uff0c\\u6b3e\\u4e0d\\u5230\\u4f4d\\u7684\\u8bdd\\uff0c\\u53ef\\u80fd\\u4f1a\\u5f71\\u54cd\\u60a8\\u7684\\u5361\\u7247\\u4f7f\\u7528\\u4e86\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184474\",\"nodeId\":\"1539172757344\",\"positionX\":2590,\"positionY\":990}"
1346 | },
1347 | "184476": {
1348 | "nodeId": "184476",
1349 | "title": "58 不再使用",
1350 | "nodeType": "Keep",
1351 | "content": "您不使用卡片了,欠款金额也是要还的,否则会影响您在银行的信用的,现在银行都是全国联网的,还请您重视,毕竟你的个人信用是自己的。再次进行一下确认,今天六点前,{Case_Amt}元处理到位,有没有问题?\n",
1352 | "actionCode": "",
1353 | "conditions": [],
1354 | "op": "",
1355 | "reply": "",
1356 | "labelData": "",
1357 | "keywords": "",
1358 | "nodeJsonFrontend": "{\"name\":\"58 \\u4e0d\\u518d\\u4f7f\\u7528\",\"procId\":\"\",\"content\":\"\\u60a8\\u4e0d\\u4f7f\\u7528\\u5361\\u7247\\u4e86\\uff0c\\u6b20\\u6b3e\\u91d1\\u989d\\u4e5f\\u662f\\u8981\\u8fd8\\u7684\\uff0c\\u5426\\u5219\\u4f1a\\u5f71\\u54cd\\u60a8\\u5728\\u94f6\\u884c\\u7684\\u4fe1\\u7528\\u7684\\uff0c\\u73b0\\u5728\\u94f6\\u884c\\u90fd\\u662f\\u5168\\u56fd\\u8054\\u7f51\\u7684\\uff0c\\u8fd8\\u8bf7\\u60a8\\u91cd\\u89c6\\uff0c\\u6bd5\\u7adf\\u4f60\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u662f\\u81ea\\u5df1\\u7684\\u3002\\u518d\\u6b21\\u8fdb\\u884c\\u4e00\\u4e0b\\u786e\\u8ba4\\uff0c\\u4eca\\u5929\\u516d\\u70b9\\u524d\\uff0c{Case_Amt}\\u5143\\u5904\\u7406\\u5230\\u4f4d\\uff0c\\u6709\\u6ca1\\u6709\\u95ee\\u9898\\uff1f\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184476\",\"nodeId\":\"1539172888668\",\"positionX\":2700,\"positionY\":990}"
1359 | },
1360 | "184478": {
1361 | "nodeId": "184478",
1362 | "title": "59 客服电话",
1363 | "nodeType": "Keep",
1364 | "content": "客服电话是4008833116,信用卡背面都有的,您今天是否能够还款,请给我个准确答复。\n",
1365 | "actionCode": "",
1366 | "conditions": [],
1367 | "op": "",
1368 | "reply": "",
1369 | "labelData": "",
1370 | "keywords": "",
1371 | "nodeJsonFrontend": "{\"name\":\"59 \\u5ba2\\u670d\\u7535\\u8bdd\",\"procId\":\"\",\"content\":\"\\u5ba2\\u670d\\u7535\\u8bdd\\u662f4008833116\\uff0c\\u4fe1\\u7528\\u5361\\u80cc\\u9762\\u90fd\\u6709\\u7684\\uff0c\\u60a8\\u4eca\\u5929\\u662f\\u5426\\u80fd\\u591f\\u8fd8\\u6b3e\\uff0c\\u8bf7\\u7ed9\\u6211\\u4e2a\\u51c6\\u786e\\u7b54\\u590d\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184478\",\"nodeId\":\"1539172923976\",\"positionX\":2810,\"positionY\":990}"
1372 | },
1373 | "184482": {
1374 | "nodeId": "184482",
1375 | "title": "60先还最小额度",
1376 | "nodeType": "End",
1377 | "content": "先还最低额度是可以的,这边就给您登记了,还款情况会直接影响您的个人信用记录,还请您重视,挂了电话马上去还吧,再见。\n",
1378 | "actionCode": "",
1379 | "conditions": [],
1380 | "op": "",
1381 | "reply": "",
1382 | "labelData": "",
1383 | "keywords": "",
1384 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"60\\u5148\\u8fd8\\u6700\\u5c0f\\u989d\\u5ea6\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u5148\\u8fd8\\u6700\\u4f4e\\u989d\\u5ea6\\u662f\\u53ef\\u4ee5\\u7684\\uff0c\\u8fd9\\u8fb9\\u5c31\\u7ed9\\u60a8\\u767b\\u8bb0\\u4e86\\uff0c\\u8fd8\\u6b3e\\u60c5\\u51b5\\u4f1a\\u76f4\\u63a5\\u5f71\\u54cd\\u60a8\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u8bb0\\u5f55\\uff0c\\u8fd8\\u8bf7\\u60a8\\u91cd\\u89c6\\uff0c\\u6302\\u4e86\\u7535\\u8bdd\\u9a6c\\u4e0a\\u53bb\\u8fd8\\u5427\\uff0c\\u518d\\u89c1\\u3002\\n\",\"desirecont\":\"\\u5f3a\\u610f\\u613f\",\"id\":\"184482\",\"nodeId\":\"1539173005645\",\"positionX\":2920,\"positionY\":990,\"removable\":true}"
1385 | },
1386 | "184484": {
1387 | "nodeId": "184484",
1388 | "title": "61改还款日期",
1389 | "nodeType": "Keep",
1390 | "content": "这边已经没办法再给您申请延期了,为了避免进一步影响你的个人信用记录,请尽快还款。||当前还款日期是不允许更改的,您今天可以还上吗。||抱歉,这个不能更改。||这边看您的还款结果了,如果还不能还款到账,只能交到总行来处理了\n",
1391 | "actionCode": "",
1392 | "conditions": [],
1393 | "op": "",
1394 | "reply": "",
1395 | "labelData": "",
1396 | "keywords": "",
1397 | "nodeJsonFrontend": "{\"name\":\"61\\u6539\\u8fd8\\u6b3e\\u65e5\\u671f\",\"procId\":\"\",\"content\":\"\\u8fd9\\u8fb9\\u5df2\\u7ecf\\u6ca1\\u529e\\u6cd5\\u518d\\u7ed9\\u60a8\\u7533\\u8bf7\\u5ef6\\u671f\\u4e86\\uff0c\\u4e3a\\u4e86\\u907f\\u514d\\u8fdb\\u4e00\\u6b65\\u5f71\\u54cd\\u4f60\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u8bb0\\u5f55\\uff0c\\u8bf7\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u3002||\\u5f53\\u524d\\u8fd8\\u6b3e\\u65e5\\u671f\\u662f\\u4e0d\\u5141\\u8bb8\\u66f4\\u6539\\u7684\\uff0c\\u60a8\\u4eca\\u5929\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5417\\u3002||\\u62b1\\u6b49\\uff0c\\u8fd9\\u4e2a\\u4e0d\\u80fd\\u66f4\\u6539\\u3002||\\u8fd9\\u8fb9\\u770b\\u60a8\\u7684\\u8fd8\\u6b3e\\u7ed3\\u679c\\u4e86\\uff0c\\u5982\\u679c\\u8fd8\\u4e0d\\u80fd\\u8fd8\\u6b3e\\u5230\\u8d26\\uff0c\\u53ea\\u80fd\\u4ea4\\u5230\\u603b\\u884c\\u6765\\u5904\\u7406\\u4e86\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184484\",\"nodeId\":\"1539173083929\",\"positionX\":3030,\"positionY\":990}"
1398 | },
1399 | "184486": {
1400 | "nodeId": "184486",
1401 | "title": "62还不上影响",
1402 | "nodeType": "Keep",
1403 | "content": "逾期会产生相应的违约金和罚息,也会对你的个人信誉产生恶劣影响,银行今天统一查账,还请您在六点前将欠款还上,您能还上吗。||如果您继续拖欠的话,这边会将您的案件上报总行,后续可能会影响您的卡片使用了,请您务必在今天六点前前还上。||今天六点前前还不上,这边就上报总行,产生的一切不良影响都由您个人承担,您今天是否可以还款。\n",
1404 | "actionCode": "",
1405 | "conditions": [],
1406 | "op": "",
1407 | "reply": "",
1408 | "labelData": "",
1409 | "keywords": "",
1410 | "nodeJsonFrontend": "{\"name\":\"62\\u8fd8\\u4e0d\\u4e0a\\u5f71\\u54cd\",\"procId\":\"\",\"content\":\"\\u903e\\u671f\\u4f1a\\u4ea7\\u751f\\u76f8\\u5e94\\u7684\\u8fdd\\u7ea6\\u91d1\\u548c\\u7f5a\\u606f\\uff0c\\u4e5f\\u4f1a\\u5bf9\\u4f60\\u7684\\u4e2a\\u4eba\\u4fe1\\u8a89\\u4ea7\\u751f\\u6076\\u52a3\\u5f71\\u54cd\\uff0c\\u94f6\\u884c\\u4eca\\u5929\\u7edf\\u4e00\\u67e5\\u8d26\\uff0c\\u8fd8\\u8bf7\\u60a8\\u5728\\u516d\\u70b9\\u524d\\u5c06\\u6b20\\u6b3e\\u8fd8\\u4e0a\\uff0c\\u60a8\\u80fd\\u8fd8\\u4e0a\\u5417\\u3002||\\u5982\\u679c\\u60a8\\u7ee7\\u7eed\\u62d6\\u6b20\\u7684\\u8bdd\\uff0c\\u8fd9\\u8fb9\\u4f1a\\u5c06\\u60a8\\u7684\\u6848\\u4ef6\\u4e0a\\u62a5\\u603b\\u884c\\uff0c\\u540e\\u7eed\\u53ef\\u80fd\\u4f1a\\u5f71\\u54cd\\u60a8\\u7684\\u5361\\u7247\\u4f7f\\u7528\\u4e86\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u524d\\u8fd8\\u4e0a\\u3002||\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u524d\\u8fd8\\u4e0d\\u4e0a\\uff0c\\u8fd9\\u8fb9\\u5c31\\u4e0a\\u62a5\\u603b\\u884c\\uff0c\\u4ea7\\u751f\\u7684\\u4e00\\u5207\\u4e0d\\u826f\\u5f71\\u54cd\\u90fd\\u7531\\u60a8\\u4e2a\\u4eba\\u627f\\u62c5\\uff0c\\u60a8\\u4eca\\u5929\\u662f\\u5426\\u53ef\\u4ee5\\u8fd8\\u6b3e\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184486\",\"nodeId\":\"1539173137197\",\"positionX\":3140,\"positionY\":990}"
1411 | },
1412 | "184488": {
1413 | "nodeId": "184488",
1414 | "title": "63哪张信用卡",
1415 | "nodeType": "Keep",
1416 | "content": "您的信用卡尾号为{STATUS2},请您务必在今天六点前还上可以吗。||系统显示为您尾号{STATUS2}的交行信用卡。||尾号为{STATUS2}的交通银行信用卡\n",
1417 | "actionCode": "",
1418 | "conditions": [],
1419 | "op": "",
1420 | "reply": "",
1421 | "labelData": "",
1422 | "keywords": "",
1423 | "nodeJsonFrontend": "{\"name\":\"63\\u54ea\\u5f20\\u4fe1\\u7528\\u5361\",\"procId\":\"\",\"content\":\"\\u60a8\\u7684\\u4fe1\\u7528\\u5361\\u5c3e\\u53f7\\u4e3a{STATUS2}\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u8fd8\\u4e0a\\u53ef\\u4ee5\\u5417\\u3002||\\u7cfb\\u7edf\\u663e\\u793a\\u4e3a\\u60a8\\u5c3e\\u53f7{STATUS2}\\u7684\\u4ea4\\u884c\\u4fe1\\u7528\\u5361\\u3002||\\u5c3e\\u53f7\\u4e3a{STATUS2}\\u7684\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184488\",\"nodeId\":\"1539173417152\",\"positionX\":3250,\"positionY\":990}"
1424 | },
1425 | "184490": {
1426 | "nodeId": "184490",
1427 | "title": "64 想办法还",
1428 | "nodeType": "Keep",
1429 | "content": "这边是需要您一个肯定答复的,否则银行这边可能会将您列为高风险用户,造成不良影响就不好了,今天将欠款还上,可以吗。\n",
1430 | "actionCode": "",
1431 | "conditions": [],
1432 | "op": "",
1433 | "reply": "",
1434 | "labelData": "",
1435 | "keywords": "",
1436 | "nodeJsonFrontend": "{\"name\":\"64 \\u60f3\\u529e\\u6cd5\\u8fd8\",\"procId\":\"\",\"content\":\"\\u8fd9\\u8fb9\\u662f\\u9700\\u8981\\u60a8\\u4e00\\u4e2a\\u80af\\u5b9a\\u7b54\\u590d\\u7684\\uff0c\\u5426\\u5219\\u94f6\\u884c\\u8fd9\\u8fb9\\u53ef\\u80fd\\u4f1a\\u5c06\\u60a8\\u5217\\u4e3a\\u9ad8\\u98ce\\u9669\\u7528\\u6237\\uff0c\\u9020\\u6210\\u4e0d\\u826f\\u5f71\\u54cd\\u5c31\\u4e0d\\u597d\\u4e86\\uff0c\\u4eca\\u5929\\u5c06\\u6b20\\u6b3e\\u8fd8\\u4e0a\\uff0c\\u53ef\\u4ee5\\u5417\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184490\",\"nodeId\":\"1539173488449\",\"positionX\":3360,\"positionY\":990}"
1437 | },
1438 | "184492": {
1439 | "nodeId": "184492",
1440 | "title": "65未提醒",
1441 | "nodeType": "Keep",
1442 | "content": "这个您可以咨询下客服热线,开通下信息提醒,不过当前您已经逾期了,还请尽快还款,欠款金额{Case_Amt}元,您别还少了,今天可以还上吧。||这边是根据您的设置进行提醒的,还请您多留意,那您今天六点前可以还上吗。||已经提醒过您了,还请您尽快还款。\n",
1443 | "actionCode": "",
1444 | "conditions": [],
1445 | "op": "",
1446 | "reply": "",
1447 | "labelData": "",
1448 | "keywords": "",
1449 | "nodeJsonFrontend": "{\"name\":\"65\\u672a\\u63d0\\u9192\",\"procId\":\"\",\"content\":\"\\u8fd9\\u4e2a\\u60a8\\u53ef\\u4ee5\\u54a8\\u8be2\\u4e0b\\u5ba2\\u670d\\u70ed\\u7ebf\\uff0c\\u5f00\\u901a\\u4e0b\\u4fe1\\u606f\\u63d0\\u9192\\uff0c\\u4e0d\\u8fc7\\u5f53\\u524d\\u60a8\\u5df2\\u7ecf\\u903e\\u671f\\u4e86\\uff0c\\u8fd8\\u8bf7\\u5c3d\\u5feb\\u8fd8\\u6b3e\\uff0c\\u6b20\\u6b3e\\u91d1\\u989d{Case_Amt}\\u5143\\uff0c\\u60a8\\u522b\\u8fd8\\u5c11\\u4e86\\uff0c\\u4eca\\u5929\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5427\\u3002||\\u8fd9\\u8fb9\\u662f\\u6839\\u636e\\u60a8\\u7684\\u8bbe\\u7f6e\\u8fdb\\u884c\\u63d0\\u9192\\u7684\\uff0c\\u8fd8\\u8bf7\\u60a8\\u591a\\u7559\\u610f\\uff0c\\u90a3\\u60a8\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u53ef\\u4ee5\\u8fd8\\u4e0a\\u5417\\u3002||\\u5df2\\u7ecf\\u63d0\\u9192\\u8fc7\\u60a8\\u4e86\\uff0c\\u8fd8\\u8bf7\\u60a8\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184492\",\"nodeId\":\"1539173595174\",\"positionX\":3470,\"positionY\":990}"
1450 | },
1451 | "184494": {
1452 | "nodeId": "184494",
1453 | "title": "66 撤销逾期",
1454 | "nodeType": "Keep",
1455 | "content": "逾期记录已经产生是无法为您撤销的,具体影响需要您致电客服进行咨询,您今天必须还款了||抱歉,这边没办法为您处理,请您尽快还款,逾期不仅会产生罚息,还会进一步影响您的信用记录的,请您务必重视,挂了电话马上去还款吧。\n",
1456 | "actionCode": "",
1457 | "conditions": [],
1458 | "op": "",
1459 | "reply": "",
1460 | "labelData": "",
1461 | "keywords": "",
1462 | "nodeJsonFrontend": "{\"name\":\"66 \\u64a4\\u9500\\u903e\\u671f\",\"procId\":\"\",\"content\":\"\\u903e\\u671f\\u8bb0\\u5f55\\u5df2\\u7ecf\\u4ea7\\u751f\\u662f\\u65e0\\u6cd5\\u4e3a\\u60a8\\u64a4\\u9500\\u7684\\uff0c\\u5177\\u4f53\\u5f71\\u54cd\\u9700\\u8981\\u60a8\\u81f4\\u7535\\u5ba2\\u670d\\u8fdb\\u884c\\u54a8\\u8be2\\uff0c\\u60a8\\u4eca\\u5929\\u5fc5\\u987b\\u8fd8\\u6b3e\\u4e86||\\u62b1\\u6b49\\uff0c\\u8fd9\\u8fb9\\u6ca1\\u529e\\u6cd5\\u4e3a\\u60a8\\u5904\\u7406\\uff0c\\u8bf7\\u60a8\\u5c3d\\u5feb\\u8fd8\\u6b3e\\uff0c\\u903e\\u671f\\u4e0d\\u4ec5\\u4f1a\\u4ea7\\u751f\\u7f5a\\u606f\\uff0c\\u8fd8\\u4f1a\\u8fdb\\u4e00\\u6b65\\u5f71\\u54cd\\u60a8\\u7684\\u4fe1\\u7528\\u8bb0\\u5f55\\u7684\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u91cd\\u89c6\\uff0c\\u6302\\u4e86\\u7535\\u8bdd\\u9a6c\\u4e0a\\u53bb\\u8fd8\\u6b3e\\u5427\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184494\",\"nodeId\":\"1539173635698\",\"positionX\":3580,\"positionY\":990}"
1463 | },
1464 | "184496": {
1465 | "nodeId": "184496",
1466 | "title": "67 自动扣",
1467 | "nodeType": "Keep",
1468 | "content": "自动扣款失败的话,是不作补扣的,需要您通过其他方式进行处理,还请您核实一下,尽快还款。\n",
1469 | "actionCode": "",
1470 | "conditions": [],
1471 | "op": "",
1472 | "reply": "",
1473 | "labelData": "",
1474 | "keywords": "",
1475 | "nodeJsonFrontend": "{\"name\":\"67 \\u81ea\\u52a8\\u6263\",\"procId\":\"\",\"content\":\"\\u81ea\\u52a8\\u6263\\u6b3e\\u5931\\u8d25\\u7684\\u8bdd\\uff0c\\u662f\\u4e0d\\u4f5c\\u8865\\u6263\\u7684\\uff0c\\u9700\\u8981\\u60a8\\u901a\\u8fc7\\u5176\\u4ed6\\u65b9\\u5f0f\\u8fdb\\u884c\\u5904\\u7406\\uff0c\\u8fd8\\u8bf7\\u60a8\\u6838\\u5b9e\\u4e00\\u4e0b\\uff0c\\u5c3d\\u5feb\\u8fd8\\u6b3e\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184496\",\"nodeId\":\"1539173665986\",\"positionX\":3690,\"positionY\":990}"
1476 | },
1477 | "184498": {
1478 | "nodeId": "184498",
1479 | "title": "68 朋友消费",
1480 | "nodeType": "Keep",
1481 | "content": "{Cust_Name}{Sex},根据信用卡领用合约,信用卡只能本人使用,您现在已经造成违约责任,至于您和您朋友谁来偿还此款项,银行是不会参与的,需要您偿还完款项后记得把卡片收回。\n",
1482 | "actionCode": "",
1483 | "conditions": [],
1484 | "op": "",
1485 | "reply": "",
1486 | "labelData": "",
1487 | "keywords": "",
1488 | "nodeJsonFrontend": "{\"name\":\"68 \\u670b\\u53cb\\u6d88\\u8d39\",\"procId\":\"\",\"content\":\"{Cust_Name}{Sex}\\uff0c\\u6839\\u636e\\u4fe1\\u7528\\u5361\\u9886\\u7528\\u5408\\u7ea6\\uff0c\\u4fe1\\u7528\\u5361\\u53ea\\u80fd\\u672c\\u4eba\\u4f7f\\u7528\\uff0c\\u60a8\\u73b0\\u5728\\u5df2\\u7ecf\\u9020\\u6210\\u8fdd\\u7ea6\\u8d23\\u4efb\\uff0c\\u81f3\\u4e8e\\u60a8\\u548c\\u60a8\\u670b\\u53cb\\u8c01\\u6765\\u507f\\u8fd8\\u6b64\\u6b3e\\u9879\\uff0c\\u94f6\\u884c\\u662f\\u4e0d\\u4f1a\\u53c2\\u4e0e\\u7684\\uff0c\\u9700\\u8981\\u60a8\\u507f\\u8fd8\\u5b8c\\u6b3e\\u9879\\u540e\\u8bb0\\u5f97\\u628a\\u5361\\u7247\\u6536\\u56de\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184498\",\"nodeId\":\"1539173770653\",\"positionX\":3800,\"positionY\":990}"
1489 | },
1490 | "184502": {
1491 | "nodeId": "184502",
1492 | "title": "70还到其他卡",
1493 | "nodeType": "Keep",
1494 | "content": "您确定是还到交通银行的信用卡了吗,如果是双账户需要您分开还款。\n",
1495 | "actionCode": "",
1496 | "conditions": [],
1497 | "op": "",
1498 | "reply": "",
1499 | "labelData": "",
1500 | "keywords": "",
1501 | "nodeJsonFrontend": "{\"name\":\"70\\u8fd8\\u5230\\u5176\\u4ed6\\u5361\",\"procId\":\"\",\"content\":\"\\u60a8\\u786e\\u5b9a\\u662f\\u8fd8\\u5230\\u4ea4\\u901a\\u94f6\\u884c\\u7684\\u4fe1\\u7528\\u5361\\u4e86\\u5417\\uff0c\\u5982\\u679c\\u662f\\u53cc\\u8d26\\u6237\\u9700\\u8981\\u60a8\\u5206\\u5f00\\u8fd8\\u6b3e\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184502\",\"nodeId\":\"1539173882512\",\"positionX\":4020,\"positionY\":990}"
1502 | },
1503 | "184504": {
1504 | "nodeId": "184504",
1505 | "title": "71 卡片过期",
1506 | "nodeType": "Keep",
1507 | "content": "卡片过期不影响您还款,您只需要知道卡号就可以做还款处理了。\n",
1508 | "actionCode": "",
1509 | "conditions": [],
1510 | "op": "",
1511 | "reply": "",
1512 | "labelData": "",
1513 | "keywords": "",
1514 | "nodeJsonFrontend": "{\"name\":\"71 \\u5361\\u7247\\u8fc7\\u671f\",\"procId\":\"\",\"content\":\"\\u5361\\u7247\\u8fc7\\u671f\\u4e0d\\u5f71\\u54cd\\u60a8\\u8fd8\\u6b3e\\uff0c\\u60a8\\u53ea\\u9700\\u8981\\u77e5\\u9053\\u5361\\u53f7\\u5c31\\u53ef\\u4ee5\\u505a\\u8fd8\\u6b3e\\u5904\\u7406\\u4e86\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184504\",\"nodeId\":\"1539173924754\",\"positionX\":4130,\"positionY\":990}"
1515 | },
1516 | "184508": {
1517 | "nodeId": "184508",
1518 | "title": "73 质疑机器人",
1519 | "nodeType": "Keep",
1520 | "content": "我是交行客服代表,本次致电是提醒您,今天下午六点前必须还款了。\n",
1521 | "actionCode": "",
1522 | "conditions": [],
1523 | "op": "",
1524 | "reply": "",
1525 | "labelData": "",
1526 | "keywords": "",
1527 | "nodeJsonFrontend": "{\"name\":\"73 \\u8d28\\u7591\\u673a\\u5668\\u4eba\",\"procId\":\"\",\"content\":\"\\u6211\\u662f\\u4ea4\\u884c\\u5ba2\\u670d\\u4ee3\\u8868\\uff0c\\u672c\\u6b21\\u81f4\\u7535\\u662f\\u63d0\\u9192\\u60a8\\uff0c\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\u524d\\u5fc5\\u987b\\u8fd8\\u6b3e\\u4e86\\u3002\\n\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184508\",\"nodeId\":\"1539174019186\",\"positionX\":4680,\"positionY\":970}"
1528 | },
1529 | "184699": {
1530 | "nodeId": "184699",
1531 | "title": "13未明确转告",
1532 | "nodeType": "End",
1533 | "content": "好的,那不好意思打扰了,如果联系不上,可能会影响{Cust_Name}{Sex}与银行的合作关系,请尽量转告让他给我行[=hang2]回电,谢谢,再见!||如果联系不上,可能会影响{Cust_Name}{Sex}与交行的合作,后续影响直接由其本人承担,请尽量转告他给交行信用卡中心回电,非常感谢,再见。\n",
1534 | "actionCode": "",
1535 | "conditions": [],
1536 | "op": "",
1537 | "reply": "",
1538 | "labelData": "",
1539 | "keywords": "",
1540 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"13\\u672a\\u660e\\u786e\\u8f6c\\u544a\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u597d\\u7684\\uff0c\\u90a3\\u4e0d\\u597d\\u610f\\u601d\\u6253\\u6270\\u4e86\\uff0c\\u5982\\u679c\\u8054\\u7cfb\\u4e0d\\u4e0a\\uff0c\\u53ef\\u80fd\\u4f1a\\u5f71\\u54cd{Cust_Name}{Sex}\\u4e0e\\u94f6\\u884c\\u7684\\u5408\\u4f5c\\u5173\\u7cfb\\uff0c\\u8bf7\\u5c3d\\u91cf\\u8f6c\\u544a\\u8ba9\\u4ed6\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u7535\\uff0c\\u8c22\\u8c22\\uff0c\\u518d\\u89c1\\uff01||\\u5982\\u679c\\u8054\\u7cfb\\u4e0d\\u4e0a\\uff0c\\u53ef\\u80fd\\u4f1a\\u5f71\\u54cd{Cust_Name}{Sex}\\u4e0e\\u4ea4\\u884c\\u7684\\u5408\\u4f5c\\uff0c\\u540e\\u7eed\\u5f71\\u54cd\\u76f4\\u63a5\\u7531\\u5176\\u672c\\u4eba\\u627f\\u62c5\\uff0c\\u8bf7\\u5c3d\\u91cf\\u8f6c\\u544a\\u4ed6\\u7ed9\\u4ea4\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u56de\\u7535\\uff0c\\u975e\\u5e38\\u611f\\u8c22\\uff0c\\u518d\\u89c1\\u3002\\n\",\"desirecont\":\"\\u65e0\\u610f\\u613f\",\"id\":\"184699\",\"nodeId\":\"1539225683240\",\"positionX\":580,\"positionY\":790,\"removable\":true}"
1541 | },
1542 | "184733": {
1543 | "nodeId": "184733",
1544 | "title": "14不认识",
1545 | "nodeType": "End",
1546 | "content": "不好意思,这个号码是{Cust_Name}{Sex}在我行[=hang2]登记的号码,如果您认识他,麻烦帮忙转告一下,让他给我行[=hang2]回个电话,如果不认识,那这边打扰了,再见!||不好意思,这个号码是{Cust_Name}{Sex}在我行[=hang2]登记的号码,现在他在我行[=hang2]的信用卡出现了问题,如果您认识他,麻烦帮忙转告一下,让他给我行[=hang2]回个电话,如果不认识,那这边打扰了,再见!\n",
1547 | "actionCode": "",
1548 | "conditions": [],
1549 | "op": "",
1550 | "reply": "",
1551 | "labelData": "",
1552 | "keywords": "",
1553 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"14\\u4e0d\\u8ba4\\u8bc6\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u4e0d\\u597d\\u610f\\u601d\\uff0c\\u8fd9\\u4e2a\\u53f7\\u7801\\u662f{Cust_Name}{Sex}\\u5728\\u6211\\u884c[=hang2]\\u767b\\u8bb0\\u7684\\u53f7\\u7801\\uff0c\\u5982\\u679c\\u60a8\\u8ba4\\u8bc6\\u4ed6\\uff0c\\u9ebb\\u70e6\\u5e2e\\u5fd9\\u8f6c\\u544a\\u4e00\\u4e0b\\uff0c\\u8ba9\\u4ed6\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u4e2a\\u7535\\u8bdd\\uff0c\\u5982\\u679c\\u4e0d\\u8ba4\\u8bc6\\uff0c\\u90a3\\u8fd9\\u8fb9\\u6253\\u6270\\u4e86\\uff0c\\u518d\\u89c1\\uff01||\\u4e0d\\u597d\\u610f\\u601d\\uff0c\\u8fd9\\u4e2a\\u53f7\\u7801\\u662f{Cust_Name}{Sex}\\u5728\\u6211\\u884c[=hang2]\\u767b\\u8bb0\\u7684\\u53f7\\u7801\\uff0c\\u73b0\\u5728\\u4ed6\\u5728\\u6211\\u884c[=hang2]\\u7684\\u4fe1\\u7528\\u5361\\u51fa\\u73b0\\u4e86\\u95ee\\u9898\\uff0c\\u5982\\u679c\\u60a8\\u8ba4\\u8bc6\\u4ed6\\uff0c\\u9ebb\\u70e6\\u5e2e\\u5fd9\\u8f6c\\u544a\\u4e00\\u4e0b\\uff0c\\u8ba9\\u4ed6\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u4e2a\\u7535\\u8bdd\\uff0c\\u5982\\u679c\\u4e0d\\u8ba4\\u8bc6\\uff0c\\u90a3\\u8fd9\\u8fb9\\u6253\\u6270\\u4e86\\uff0c\\u518d\\u89c1\\uff01\\n\",\"desirecont\":\"\\u65e0\\u610f\\u613f\",\"id\":\"184733\",\"nodeId\":\"1539226748251\",\"positionX\":710,\"positionY\":280,\"removable\":true}"
1554 | },
1555 | "184741": {
1556 | "nodeId": "184741",
1557 | "title": "15转告成功",
1558 | "nodeType": "End",
1559 | "content": "非常感谢您的配合,打扰您了,再见。",
1560 | "actionCode": "",
1561 | "conditions": [],
1562 | "op": "",
1563 | "reply": "",
1564 | "labelData": "",
1565 | "keywords": "",
1566 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"15\\u8f6c\\u544a\\u6210\\u529f\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u975e\\u5e38\\u611f\\u8c22\\u60a8\\u7684\\u914d\\u5408\\uff0c\\u6253\\u6270\\u60a8\\u4e86\\uff0c\\u518d\\u89c1\\u3002\",\"desirecont\":\"\\u5f3a\\u610f\\u613f\",\"id\":\"184741\",\"nodeId\":\"1539225839227\",\"positionX\":1620,\"positionY\":790,\"removable\":true}"
1567 | },
1568 | "184771": {
1569 | "nodeId": "184771",
1570 | "title": "19答应还款",
1571 | "nodeType": "End",
1572 | "content": "好的,我们今天六点准时安排审核,一旦审核到空账或者少还,后续产生的影响以及损失将会登记到您个人名下,所以请务必重视不要忘记了,电话全程保持录音,这边不打扰您了,再见!\n",
1573 | "actionCode": "",
1574 | "conditions": [],
1575 | "op": "",
1576 | "reply": "",
1577 | "labelData": "",
1578 | "keywords": "",
1579 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"19\\u7b54\\u5e94\\u8fd8\\u6b3e\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u597d\\u7684\\uff0c\\u6211\\u4eec\\u4eca\\u5929\\u516d\\u70b9\\u51c6\\u65f6\\u5b89\\u6392\\u5ba1\\u6838\\uff0c\\u4e00\\u65e6\\u5ba1\\u6838\\u5230\\u7a7a\\u8d26\\u6216\\u8005\\u5c11\\u8fd8\\uff0c\\u540e\\u7eed\\u4ea7\\u751f\\u7684\\u5f71\\u54cd\\u4ee5\\u53ca\\u635f\\u5931\\u5c06\\u4f1a\\u767b\\u8bb0\\u5230\\u60a8\\u4e2a\\u4eba\\u540d\\u4e0b\\uff0c\\u6240\\u4ee5\\u8bf7\\u52a1\\u5fc5\\u91cd\\u89c6\\u4e0d\\u8981\\u5fd8\\u8bb0\\u4e86\\uff0c\\u7535\\u8bdd\\u5168\\u7a0b\\u4fdd\\u6301\\u5f55\\u97f3\\uff0c\\u8fd9\\u8fb9\\u4e0d\\u6253\\u6270\\u60a8\\u4e86\\uff0c\\u518d\\u89c1\\uff01\\n\",\"desirecont\":\"\\u5f3a\\u610f\\u613f\",\"id\":\"184771\",\"nodeId\":\"1539227304182\",\"positionX\":490,\"positionY\":980,\"removable\":true}"
1580 | },
1581 | "184773": {
1582 | "nodeId": "184773",
1583 | "title": "20用户忙",
1584 | "nodeType": "End",
1585 | "content": "那这边先不打扰您了,本次来电主要跟您核实相关信息,请保持手机畅通,后续将由其他专员联系您!再见!\n",
1586 | "actionCode": "",
1587 | "conditions": [],
1588 | "op": "",
1589 | "reply": "",
1590 | "labelData": "",
1591 | "keywords": "",
1592 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"20\\u7528\\u6237\\u5fd9\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u90a3\\u8fd9\\u8fb9\\u5148\\u4e0d\\u6253\\u6270\\u60a8\\u4e86\\uff0c\\u672c\\u6b21\\u6765\\u7535\\u4e3b\\u8981\\u8ddf\\u60a8\\u6838\\u5b9e\\u76f8\\u5173\\u4fe1\\u606f\\uff0c\\u8bf7\\u4fdd\\u6301\\u624b\\u673a\\u7545\\u901a\\uff0c\\u540e\\u7eed\\u5c06\\u7531\\u5176\\u4ed6\\u4e13\\u5458\\u8054\\u7cfb\\u60a8\\uff01\\u518d\\u89c1!\\n\",\"desirecont\":\"\\u6709\\u610f\\u613f\",\"id\":\"184773\",\"nodeId\":\"1539227364028\",\"positionX\":1150,\"positionY\":980,\"removable\":true}"
1593 | },
1594 | "184798": {
1595 | "nodeId": "184798",
1596 | "title": "3 keep",
1597 | "nodeType": "Keep",
1598 | "content": "是这样的,我是交通银行信用卡中心的,这个号码是{Cust_Name}{Sex}在我行[=hang2]登记的号码,请问您认识{Cust_Name}{Sex}吗。",
1599 | "actionCode": "",
1600 | "conditions": [],
1601 | "op": "",
1602 | "reply": "",
1603 | "labelData": "",
1604 | "keywords": "",
1605 | "nodeJsonFrontend": "{\"name\":\"3 keep\",\"procId\":\"\",\"content\":\"\\u662f\\u8fd9\\u6837\\u7684\\uff0c\\u6211\\u662f\\u4ea4\\u901a\\u94f6\\u884c\\u4fe1\\u7528\\u5361\\u4e2d\\u5fc3\\u7684\\uff0c\\u8fd9\\u4e2a\\u53f7\\u7801\\u662f{Cust_Name}{Sex}\\u5728\\u6211\\u884c[=hang2]\\u767b\\u8bb0\\u7684\\u53f7\\u7801\\uff0c\\u8bf7\\u95ee\\u60a8\\u8ba4\\u8bc6{Cust_Name}{Sex}\\u5417\\u3002\",\"nodeType\":1,\"isnode\":1,\"turnDes\":false,\"back\":false,\"keep\":true,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"184798\",\"nodeId\":\"1539226922716\",\"positionX\":570,\"positionY\":470}"
1606 | },
1607 | "184810": {
1608 | "nodeId": "184810",
1609 | "title": "21已还款",
1610 | "nodeType": "End",
1611 | "content": "那您的情况我已了解,我行[=hang2]系统是实时到账的,我们会及时给您确认,也请您自己再去核实下还款到账情况。您的逾期全额为{Case_Amt}元。如有任何疑问请致电我行[=hang2]热线4008833116,祝您生活愉快!再见!||那您的情况我已了解,请确保您的逾期金额{Case_Amt}元已经还够了,如果没有还够,请您务必在今天六点前处理好,否则您信用卡后续带来的个人信用风险都由您本人承担,这边有任何疑问请拨打4008833116,抱歉打扰了,再见。\n",
1612 | "actionCode": "",
1613 | "conditions": [],
1614 | "op": "",
1615 | "reply": "",
1616 | "labelData": "",
1617 | "keywords": "",
1618 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"21\\u5df2\\u8fd8\\u6b3e\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u90a3\\u60a8\\u7684\\u60c5\\u51b5\\u6211\\u5df2\\u4e86\\u89e3\\uff0c\\u6211\\u884c[=hang2]\\u7cfb\\u7edf\\u662f\\u5b9e\\u65f6\\u5230\\u8d26\\u7684\\uff0c\\u6211\\u4eec\\u4f1a\\u53ca\\u65f6\\u7ed9\\u60a8\\u786e\\u8ba4\\uff0c\\u4e5f\\u8bf7\\u60a8\\u81ea\\u5df1\\u518d\\u53bb\\u6838\\u5b9e\\u4e0b\\u8fd8\\u6b3e\\u5230\\u8d26\\u60c5\\u51b5\\u3002\\u60a8\\u7684\\u903e\\u671f\\u5168\\u989d\\u4e3a{Case_Amt}\\u5143\\u3002\\u5982\\u6709\\u4efb\\u4f55\\u7591\\u95ee\\u8bf7\\u81f4\\u7535\\u6211\\u884c[=hang2]\\u70ed\\u7ebf4008833116\\uff0c\\u795d\\u60a8\\u751f\\u6d3b\\u6109\\u5feb\\uff01\\u518d\\u89c1\\uff01||\\u90a3\\u60a8\\u7684\\u60c5\\u51b5\\u6211\\u5df2\\u4e86\\u89e3\\uff0c\\u8bf7\\u786e\\u4fdd\\u60a8\\u7684\\u903e\\u671f\\u91d1\\u989d{Case_Amt}\\u5143\\u5df2\\u7ecf\\u8fd8\\u591f\\u4e86\\uff0c\\u5982\\u679c\\u6ca1\\u6709\\u8fd8\\u591f\\uff0c\\u8bf7\\u60a8\\u52a1\\u5fc5\\u5728\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u5904\\u7406\\u597d\\uff0c\\u5426\\u5219\\u60a8\\u4fe1\\u7528\\u5361\\u540e\\u7eed\\u5e26\\u6765\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u98ce\\u9669\\u90fd\\u7531\\u60a8\\u672c\\u4eba\\u627f\\u62c5\\uff0c\\u8fd9\\u8fb9\\u6709\\u4efb\\u4f55\\u7591\\u95ee\\u8bf7\\u62e8\\u62534008833116\\uff0c\\u62b1\\u6b49\\u6253\\u6270\\u4e86\\uff0c\\u518d\\u89c1\\u3002\\n\",\"desirecont\":\"\\u5f3a\\u610f\\u613f\",\"id\":\"184810\",\"nodeId\":\"1539227134877\",\"positionX\":380,\"positionY\":980,\"removable\":true}"
1619 | },
1620 | "184862": {
1621 | "nodeId": "184862",
1622 | "title": "22忘记还款",
1623 | "nodeType": "End",
1624 | "content": "好的,那这边就为您登记了,我们今天下午六点准时审核,如果款项未按时还款到位的话,后续欠款案件及你的个人信用将按程序上报处理,一旦上报总行,不单单是用卡的问题了。口头承诺也是协议,如后期一旦违约,银行也会按照虚假承诺来处理,所以请您务必重视,挂完电话就立马处理一下,这边就不耽误时间了,再见。\n",
1625 | "actionCode": "",
1626 | "conditions": [],
1627 | "op": "",
1628 | "reply": "",
1629 | "labelData": "",
1630 | "keywords": "",
1631 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"22\\u5fd8\\u8bb0\\u8fd8\\u6b3e\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u597d\\u7684\\uff0c\\u90a3\\u8fd9\\u8fb9\\u5c31\\u4e3a\\u60a8\\u767b\\u8bb0\\u4e86\\uff0c\\u6211\\u4eec\\u4eca\\u5929\\u4e0b\\u5348\\u516d\\u70b9\\u51c6\\u65f6\\u5ba1\\u6838\\uff0c\\u5982\\u679c\\u6b3e\\u9879\\u672a\\u6309\\u65f6\\u8fd8\\u6b3e\\u5230\\u4f4d\\u7684\\u8bdd\\uff0c\\u540e\\u7eed\\u6b20\\u6b3e\\u6848\\u4ef6\\u53ca\\u4f60\\u7684\\u4e2a\\u4eba\\u4fe1\\u7528\\u5c06\\u6309\\u7a0b\\u5e8f\\u4e0a\\u62a5\\u5904\\u7406\\uff0c\\u4e00\\u65e6\\u4e0a\\u62a5\\u603b\\u884c\\uff0c\\u4e0d\\u5355\\u5355\\u662f\\u7528\\u5361\\u7684\\u95ee\\u9898\\u4e86\\u3002\\u53e3\\u5934\\u627f\\u8bfa\\u4e5f\\u662f\\u534f\\u8bae\\uff0c\\u5982\\u540e\\u671f\\u4e00\\u65e6\\u8fdd\\u7ea6\\uff0c\\u94f6\\u884c\\u4e5f\\u4f1a\\u6309\\u7167\\u865a\\u5047\\u627f\\u8bfa\\u6765\\u5904\\u7406\\uff0c\\u6240\\u4ee5\\u8bf7\\u60a8\\u52a1\\u5fc5\\u91cd\\u89c6\\uff0c\\u6302\\u5b8c\\u7535\\u8bdd\\u5c31\\u7acb\\u9a6c\\u5904\\u7406\\u4e00\\u4e0b\\uff0c\\u8fd9\\u8fb9\\u5c31\\u4e0d\\u803d\\u8bef\\u65f6\\u95f4\\u4e86\\uff0c\\u518d\\u89c1\\u3002\\n\",\"desirecont\":\"\\u6709\\u610f\\u613f\",\"id\":\"184862\",\"nodeId\":\"1539227880642\",\"positionX\":600,\"positionY\":980,\"removable\":true}"
1632 | },
1633 | "184956": {
1634 | "nodeId": "184956",
1635 | "title": "23明确不转告",
1636 | "nodeType": "End",
1637 | "content": "好的,还是希望您可以微信或者短信给他留言,让他给我行[=hang2]回电,先不打扰了,感谢您的接听!再见!\n",
1638 | "actionCode": "",
1639 | "conditions": [],
1640 | "op": "",
1641 | "reply": "",
1642 | "labelData": "",
1643 | "keywords": "",
1644 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"23\\u660e\\u786e\\u4e0d\\u8f6c\\u544a\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u597d\\u7684\\uff0c\\u8fd8\\u662f\\u5e0c\\u671b\\u60a8\\u53ef\\u4ee5\\u5fae\\u4fe1\\u6216\\u8005\\u77ed\\u4fe1\\u7ed9\\u4ed6\\u7559\\u8a00\\uff0c\\u8ba9\\u4ed6\\u7ed9\\u6211\\u884c[=hang2]\\u56de\\u7535,\\u5148\\u4e0d\\u6253\\u6270\\u4e86\\uff0c\\u611f\\u8c22\\u60a8\\u7684\\u63a5\\u542c\\uff01\\u518d\\u89c1\\uff01\\n\",\"desirecont\":\"\\u65e0\\u610f\\u613f\",\"id\":\"184956\",\"nodeId\":\"1539237664053\",\"positionX\":690,\"positionY\":790,\"removable\":true}"
1645 | },
1646 | "2": {
1647 | "nodeId": "2",
1648 | "title": "hold线",
1649 | "nodeType": "",
1650 | "content": "",
1651 | "actionCode": "",
1652 | "conditions": [],
1653 | "op": "",
1654 | "reply": "",
1655 | "labelData": "",
1656 | "keywords": "",
1657 | "nodeJsonFrontend": "{\"name\":\"hold\\u7ebf\",\"procId\":\"\",\"id\":\"2\",\"labelData\":\"\",\"keywords\":\"_holdline_\",\"nodeType\":3,\"actionCode\":\"\",\"keep\":null,\"isnode\":3,\"className\":\"node-process_default\",\"removable\":true,\"nodeId\":\"1539171344036\",\"positionX\":4570,\"positionY\":920,\"defaultnode\":null}"
1658 | },
1659 | "800001": {
1660 | "nodeId": "800001",
1661 | "title": "title123",
1662 | "nodeType": "KNOWLEDGENODE",
1663 | "content": "",
1664 | "actionCode": "",
1665 | "conditions": null,
1666 | "op": "Continue",
1667 | "reply": "ans123",
1668 | "labelData": "ask123",
1669 | "keywords": "key123",
1670 | "nodeJsonFrontend": ""
1671 | },
1672 | "8000010": {
1673 | "nodeId": "8000010",
1674 | "title": "热锅烧热",
1675 | "nodeType": "KNOWLEDGENODE",
1676 | "content": "",
1677 | "actionCode": "",
1678 | "conditions": null,
1679 | "op": "Continue",
1680 | "reply": "撒发",
1681 | "labelData": "萨芬",
1682 | "keywords": "阿斯顿发",
1683 | "nodeJsonFrontend": ""
1684 | },
1685 | "8000014": {
1686 | "nodeId": "8000014",
1687 | "title": "询问是否机器人",
1688 | "nodeType": "KNOWLEDGENODE",
1689 | "content": "",
1690 | "actionCode": "",
1691 | "conditions": null,
1692 | "op": "Continue",
1693 | "reply": "这个不重要的啦,我们给您致电呢,主要是做市场调研答谢出行保障,如有任何疑问可咨询阳光保险客服热线95510,可以吗?",
1694 | "labelData": "你是机器人吗||你是真人吗||你是人还是机器人||智能客服是机器人吗||智能客服是人还是机器人||什么是智能客服||智能客服是什么||不知道你是人还是机器人||这是机器人打过来的电话吗",
1695 | "keywords": "你.*是.*(人|机器)",
1696 | "nodeJsonFrontend": ""
1697 | },
1698 | "8000017": {
1699 | "nodeId": "8000017",
1700 | "title": "解释赠送保险",
1701 | "nodeType": "KNOWLEDGENODE",
1702 | "content": "",
1703 | "actionCode": "",
1704 | "conditions": null,
1705 | "op": "Continue",
1706 | "reply": "阳光保险将赠送您一份出行保险,为确保保险生效,将核对下您的信息,o吗,亲",
1707 | "labelData": "什么出行保障||给我什么保障||保障我什么||什么狗屁保障||能保我什么呀||什么保障呀||请问是什么出行保障||请问是保险吗||出行保障是什么||什么出行保障呀||请问需要收费吗||什么是出行保障呀||这个出行保障包括哪些内容||出行保障有什么用||你会送我啥||赠送什么保险||送我啥保险||是免费送保险吗||送什么保险||真的会送我保险吗",
1708 | "keywords": "保障||调研送*什么||送什么",
1709 | "nodeJsonFrontend": ""
1710 | },
1711 | "800002": {
1712 | "nodeId": "800002",
1713 | "title": "G_title1",
1714 | "nodeType": "KNOWLEDGENODE",
1715 | "content": "",
1716 | "actionCode": "",
1717 | "conditions": null,
1718 | "op": "Continue",
1719 | "reply": "G_ans",
1720 | "labelData": "G_ask",
1721 | "keywords": "G_key",
1722 | "nodeJsonFrontend": ""
1723 | },
1724 | "800004": {
1725 | "nodeId": "800004",
1726 | "title": "解决",
1727 | "nodeType": "KNOWLEDGENODE",
1728 | "content": "",
1729 | "actionCode": "",
1730 | "conditions": null,
1731 | "op": "Continue",
1732 | "reply": "撒士大夫大师傅似的",
1733 | "labelData": "我家门被反锁了",
1734 | "keywords": "",
1735 | "nodeJsonFrontend": ""
1736 | },
1737 | "800005": {
1738 | "nodeId": "800005",
1739 | "title": "ooor",
1740 | "nodeType": "KNOWLEDGENODE",
1741 | "content": "",
1742 | "actionCode": "",
1743 | "conditions": null,
1744 | "op": "Continue",
1745 | "reply": "werwer",
1746 | "labelData": "wweerwe",
1747 | "keywords": "",
1748 | "nodeJsonFrontend": ""
1749 | },
1750 | "800008": {
1751 | "nodeId": "800008",
1752 | "title": "发的",
1753 | "nodeType": "KNOWLEDGENODE",
1754 | "content": "",
1755 | "actionCode": "",
1756 | "conditions": null,
1757 | "op": "Replay",
1758 | "reply": "大师",
1759 | "labelData": "发大发",
1760 | "keywords": "阿斯顿发",
1761 | "nodeJsonFrontend": ""
1762 | },
1763 | "800009": {
1764 | "nodeId": "800009",
1765 | "title": "时代风格表达方式",
1766 | "nodeType": "KNOWLEDGENODE",
1767 | "content": "",
1768 | "actionCode": "",
1769 | "conditions": null,
1770 | "op": "Continue",
1771 | "reply": "时代风格",
1772 | "labelData": "时代风格",
1773 | "keywords": "时代风格",
1774 | "nodeJsonFrontend": ""
1775 | },
1776 | "888991": {
1777 | "nodeId": "888991",
1778 | "title": "72投诉",
1779 | "nodeType": "End",
1780 | "content": "{Sex},很抱歉,您这个情况我这边会如实备注,提醒您今天六点前不要忘记处理欠款,银行会准时查账,不打扰您了,再见\n",
1781 | "actionCode": "",
1782 | "conditions": [],
1783 | "op": "",
1784 | "reply": "",
1785 | "labelData": "",
1786 | "keywords": "",
1787 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"72\\u6295\\u8bc9\",\"nodeType\":0,\"isnode\":-1,\"content\":\"{Sex}\\uff0c\\u5f88\\u62b1\\u6b49\\uff0c\\u60a8\\u8fd9\\u4e2a\\u60c5\\u51b5\\u6211\\u8fd9\\u8fb9\\u4f1a\\u5982\\u5b9e\\u5907\\u6ce8\\uff0c\\u63d0\\u9192\\u60a8\\u4eca\\u5929\\u516d\\u70b9\\u524d\\u4e0d\\u8981\\u5fd8\\u8bb0\\u5904\\u7406\\u6b20\\u6b3e\\uff0c\\u94f6\\u884c\\u4f1a\\u51c6\\u65f6\\u67e5\\u8d26\\uff0c\\u4e0d\\u6253\\u6270\\u60a8\\u4e86\\uff0c\\u518d\\u89c1\\n\",\"desirecont\":\"\\u65e0\\u610f\\u613f\",\"id\":\"888991\",\"nodeId\":\"1539744492726\",\"positionX\":4240,\"positionY\":990,\"removable\":true}"
1788 | },
1789 | "889035": {
1790 | "nodeId": "889035",
1791 | "title": "69 到刷卡",
1792 | "nodeType": "End",
1793 | "content": "如果您确认卡片[w1]被盗刷,还请您拨打客服电话[w1]进行咨询,并尽快处理,这边先不打扰了,再见。",
1794 | "actionCode": "",
1795 | "conditions": [],
1796 | "op": "",
1797 | "reply": "",
1798 | "labelData": "",
1799 | "keywords": "",
1800 | "nodeJsonFrontend": "{\"className\":\"node-process_end\",\"name\":\"69 \\u5230\\u5237\\u5361\",\"nodeType\":0,\"isnode\":-1,\"content\":\"\\u5982\\u679c\\u60a8\\u786e\\u8ba4\\u5361\\u7247[w1]\\u88ab\\u76d7\\u5237\\uff0c\\u8fd8\\u8bf7\\u60a8\\u62e8\\u6253\\u5ba2\\u670d\\u7535\\u8bdd[w1]\\u8fdb\\u884c\\u54a8\\u8be2\\uff0c\\u5e76\\u5c3d\\u5feb\\u5904\\u7406\\uff0c\\u8fd9\\u8fb9\\u5148\\u4e0d\\u6253\\u6270\\u4e86\\uff0c\\u518d\\u89c1\\u3002\",\"desirecont\":\"\\u65e0\\u610f\\u613f\",\"id\":\"889035\",\"nodeId\":\"1539746661320\",\"positionX\":3910,\"positionY\":990,\"removable\":true}"
1801 | },
1802 | "889077": {
1803 | "nodeId": "889077",
1804 | "title": "人工",
1805 | "nodeType": "Agent",
1806 | "content": "你好,客服小A为您服务!",
1807 | "actionCode": "",
1808 | "conditions": [],
1809 | "op": "",
1810 | "reply": "",
1811 | "labelData": "",
1812 | "keywords": "",
1813 | "nodeJsonFrontend": "{\"name\":\"\\u4eba\\u5de5\",\"procId\":\"\",\"content\":\"\\u4f60\\u597d\\uff0c\\u5ba2\\u670d\\u5c0fA\\u4e3a\\u60a8\\u670d\\u52a1\\uff01\",\"nodeType\":1,\"isnode\":1,\"turnDes\":true,\"back\":false,\"keep\":false,\"className\":\"node-process\",\"removable\":true,\"istable\":true,\"id\":\"889077\",\"nodeId\":\"1539771386850\",\"positionX\":1990,\"positionY\":270}"
1814 | }
1815 | }
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | # encoding: utf-8
2 | """
3 | Author: 沙振宇
4 | CreateTime: 2018-12-25
5 | UpdateTime: 2019-12-13
6 | Info: 利用用TF特征向量和sim hash指纹计算中文文本的相似度试验
7 | """
8 | import json
9 | import sys
10 | import time
11 | import re_test
12 | from text_similarity_master.src.isSimilar import DocFeatLoader
13 |
14 | # 引用text_similarity 用TF特征向量和sim hash指纹计算中文文本的相似度(https://github.com/zyymax/text-similarity)
15 | sys.path.append("./text_similarity_master/src")
16 | from simhash_imp import SimhashBuilder
17 | from tokens import JiebaTokenizer
18 | from features import FeatureBuilder
19 | from Utils import cosine_distance_nonzero
20 | from DictBuilder import WordDictBuilder
21 |
22 | user_dict = "./user_dict/user_ner_dict.txt"
23 | word_dict_path = "./data/word.dict"
24 | flow_data_dir = './flowData'
25 | stopwords_path = "./text_similarity_master/data/stopwords.txt"
26 |
27 | # 所有文本数据
28 | labelContents = []
29 | # 预加载所有流程信息
30 | originalFlowMap = {}
31 | processFlowMap = {}
32 |
33 | # 配置文件flowId列表
34 | conFileList = []
35 |
36 | # 读取文件里面数据
37 | def getDate(filename):
38 | with open(filename,"r",encoding='utf-8') as fp:
39 | data = fp.read()
40 | return data
41 |
42 | # 加载数据
43 | def loadData(flowId):
44 | nodeMap = getDate(flow_data_dir+"/"+flowId)
45 | nodeMaps = json.loads(nodeMap)
46 | originalFlowMap[flowId] = nodeMaps
47 |
48 | # 调用数据预处理 结果放到 processFlowMap 字典内
49 | processLabelDataMap = processLabelData(nodeMaps)
50 | processFlowMap[flowId] = processLabelDataMap
51 |
52 | # 节点条件标注数据预处理
53 | def splitConditionLabelData(condition):
54 | normalNodeProcessList = []
55 | try:
56 | labelData = condition["labelData"]
57 | targetNodeId = condition["targetNodeId"]
58 | actionCode = condition["actionCode"]
59 | # 修改错误检测
60 | try:
61 | conditionId = condition["conditionId"]
62 | except Exception as e:
63 | conditionId = ""
64 | labelDataList = labelData.split("||")
65 |
66 | for i in range(len(labelDataList)):
67 | tmpMap = {}
68 | labelDate = labelDataList[i]
69 | tmpMap["targetNodeId"] = targetNodeId
70 | tmpMap["labelData"] = labelDate
71 | labelDataAfterProcess = re_test.run(labelDate)
72 | tmpMap["processLabelData"] = labelDataAfterProcess
73 | tmpMap["actionCode"] = actionCode
74 | tmpMap["conditionId"] = conditionId
75 | labelContents.append(labelDataAfterProcess)
76 | normalNodeProcessList.append(tmpMap)
77 | except Exception as e:
78 | print("splitConditionLabelData error:", str(e))
79 | return normalNodeProcessList
80 |
81 | # 知识库标注数据预处理
82 | def splitKnowledgeLabelData(nodeId, labelData, actionCode):
83 | KnowledgeNodeProcessList = []
84 | try:
85 | labelDataList = labelData.split("||")
86 | for i in range(len(labelDataList)):
87 | tmpMap = {}
88 | labelDate = labelDataList[i]
89 | tmpMap["targetNodeId"] = nodeId
90 | tmpMap["labelData"] = labelDate
91 | labelDataAfterProcess = re_test.run(labelDate)
92 | tmpMap["processLabelData"] = labelDataAfterProcess
93 | tmpMap["actionCode"] = actionCode
94 | tmpMap["conditionId"] = ""
95 | labelContents.append(labelDataAfterProcess)
96 | KnowledgeNodeProcessList.append(tmpMap)
97 | except Exception as e:
98 | print("splitKnowledgeLabelData:", str(e))
99 | return KnowledgeNodeProcessList
100 |
101 | # 数据预处理
102 | def processLabelData(nodeMap):
103 | processLabelDataMap = {}
104 | splitKnowledgeLabelDataList = []
105 | for oneNodeId in nodeMap:
106 | try:
107 | oneNode = nodeMap[oneNodeId]
108 | if "8000" not in oneNodeId:
109 | if "conditions" in oneNode.keys():
110 | conditions = oneNode["conditions"]
111 | tmpLabelDataList = []
112 | for i in range(len(conditions)):
113 | condition = conditions[i]
114 | if condition["labelData"] == "":
115 | continue
116 | tmpLabelDataList = tmpLabelDataList + splitConditionLabelData(condition)
117 | if len(tmpLabelDataList) > 0:
118 | processLabelDataMap[oneNodeId] = tmpLabelDataList
119 | elif "labelData" in oneNode.keys():
120 | labelData = oneNode["labelData"]
121 | actionCode = oneNode["actionCode"]
122 | splitKnowledgeLabelDataList = splitKnowledgeLabelDataList + splitKnowledgeLabelData(oneNodeId,labelData,actionCode)
123 | except Exception as e:
124 | print("error nodeID %s,processLabelData::%s" % (oneNodeId, e))
125 | if len(splitKnowledgeLabelDataList) > 0:
126 | processLabelDataMap["80000"] = splitKnowledgeLabelDataList
127 | return processLabelDataMap
128 |
129 | # 生成词典
130 | def buildWords(jt, contentList):
131 | doc_tokens_list = []
132 | for i in range(len(contentList)):
133 | doc_tokens = jt.tokens(contentList[i])
134 | doc_tokens_list.extend(doc_tokens)
135 | wdb = WordDictBuilder(word_dict_path, tokenlist=doc_tokens_list)
136 | wdb.run()
137 | wdb.save(word_dict_path)
138 |
139 | wordList = []
140 | with open(word_dict_path) as ins:
141 | for line in ins.readlines():
142 | if line != '\n':
143 | wordList.append(line.split()[1])
144 | wordDict = {}
145 | for idx, ascword in enumerate(wordList):
146 | wordDict[ascword] = idx
147 |
148 | return wordList, wordDict
149 |
150 | # 生成特征向量
151 | def generateDocFeatureVector(processLabelDataMap, jt, fb, smb):
152 | print("generate doc feature vector...")
153 | contentFlListMap = {}
154 | try:
155 | for id, contentList in processLabelDataMap.items():
156 | if len(contentList) == 0:
157 | continue
158 | tmpContentList = []
159 | for i in range(len(contentList)):
160 | content = contentList[i]
161 | processLabelData = content["processLabelData"]
162 | doc_token = jt.tokens(processLabelData)
163 | doc_feat = fb.compute(doc_token)
164 | doc_fl = DocFeatLoader(smb, doc_feat)
165 | content["lableDataFeatureVector"] = doc_fl
166 | content["lableDataToken"] = doc_token
167 | tmpContentList.append(content)
168 | contentFlListMap[id] = tmpContentList
169 | print("generate doc feature vector end")
170 | except Exception as e:
171 | print("generateDocFeatureVector:", str(e))
172 | return contentFlListMap
173 |
174 | # 预处理主文件
175 | def preProcessingData(filename):
176 | loadData(filename)
177 | jt_time = time.time()
178 | global jt
179 | jt = JiebaTokenizer(stopwords_path, 'c')
180 | end_jt_time = time.time()
181 | print('JiebaTokenizer time: %s' % str(end_jt_time - jt_time))
182 | # 根据所有的标注数据做词向量模型 生成词典
183 | wordList, wordDict = buildWords(jt, labelContents)
184 | end_build_time = time.time()
185 | print('buildWords time: %s' % str(end_build_time - end_jt_time))
186 | # 生成特征向量
187 | global fb
188 | fb = FeatureBuilder(wordDict)
189 | end_fb_build_time = time.time()
190 | print('FeatureBuilder time: %s' % str(end_fb_build_time - end_build_time))
191 | # 生成指纹
192 | global smb
193 | smb = SimhashBuilder(wordList)
194 | end_smb_build_time = time.time()
195 | print('SimhashBuilder time: %s' % str(end_smb_build_time - end_fb_build_time))
196 | # 生成所有标注数据的特征向量
197 | for flowId, processLabelDataMap in processFlowMap.items():
198 | processFlowMap[flowId] = generateDocFeatureVector(processLabelDataMap, jt, fb, smb)
199 | end_docFV_time = time.time()
200 | print('generateDocFeatureVector time: %s' % str(end_docFV_time - end_smb_build_time))
201 |
202 | #语义相似度计算
203 | def textSimilarity(question, nodeMap, nodeId):
204 | try:
205 | text = re_test.run(question) # 通过正则 查找匹配数据
206 | doc_token = jt.tokens(text) # 预处理,分词
207 | doc_feat = fb.compute(doc_token)
208 | doc_fl = DocFeatLoader(smb, doc_feat) # 对象包含两个参数 # fingerprint 指纹分值 # feat_vec 包含元组的列表
209 |
210 | # 预处理后的配置文件
211 | contentFlListMap = nodeMap
212 | p_score_list = []
213 | if nodeId in contentFlListMap.keys():
214 | nodeFlList = contentFlListMap[nodeId]
215 | print("nodeFilist",nodeFlList)
216 | for i in range(len(nodeFlList)):
217 | p_score_dict={}
218 | dist = cosine_distance_nonzero(nodeFlList[i]["lableDataFeatureVector"].feat_vec, doc_fl.feat_vec, norm=False)
219 | p_score_dict["score"] = dist
220 | p_score_dict["labelData"] = nodeFlList[i]["labelData"]
221 | p_score_dict["targetNodeId"] = nodeFlList[i]["targetNodeId"]
222 | p_score_dict["conditionId"] = nodeFlList[i]["conditionId"]
223 | p_score_list.append(p_score_dict)
224 | p_score_list = sorted(p_score_list, key=lambda score : score["score"], reverse=True)
225 |
226 | print("Sorted:",p_score_list)
227 |
228 | Complete_MayBeL4 = []
229 | Complete_MayBeL4Score = []
230 | Complete_MayBeL4ID = []
231 | Complete_MayBeL4Max = 3
232 | for i, el in enumerate(p_score_list):
233 | p_label = p_score_list[i]["labelData"]
234 | p_score = p_score_list[i]["score"]
235 | p_conditionId = p_score_list[i]["conditionId"]
236 | if len(Complete_MayBeL4) < Complete_MayBeL4Max:
237 | Complete_MayBeL4.append(p_label)
238 | Complete_MayBeL4Score.append(p_score)
239 | Complete_MayBeL4ID.append(p_conditionId)
240 | else:
241 | break
242 |
243 | print("************************************")
244 | print("用户问题:", question)
245 | print("相似问(Max=%s):%s"%(Complete_MayBeL4Max,Complete_MayBeL4))
246 | print("特征值(Max=%s):%s"%(Complete_MayBeL4Max,Complete_MayBeL4Score))
247 | print("ID:",Complete_MayBeL4ID)
248 | return "", "", "", "", "", ""
249 | except Exception as e:
250 | print("************************************")
251 | print("Error textSimilarity:", str(e))
252 | print("************************************")
253 | return "", "", "", "", "", ""
254 |
255 | if __name__ =="__main__":
256 | file_name = "test.json" # 1、准备测试数据
257 | preProcessingData(file_name) # 2、预处理读到的数据
258 | print("originalFlowMap:",originalFlowMap) # 打印原配置文件
259 | print("processFlowMap:",processFlowMap) # 打印预处理的配置文件
260 | nodeMap = processFlowMap[file_name] # 3、加载数据到Map中
261 | userQuestion = "你打错号码了" # 4、输入用户问题
262 | textSimilarity(userQuestion, nodeMap, "1") # 5、利用TF特征向量和sim hash指纹计算出 预处理的配置文件中的分值
263 |
--------------------------------------------------------------------------------
/re_test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShaShiDiZhuanLan/Demo_TFIDF_Simhash_Python/e9289fc211aa39f10a22d9d8a1a741323f6b50f8/re_test.png
--------------------------------------------------------------------------------
/re_test.py:
--------------------------------------------------------------------------------
1 | # encoding: utf-8
2 | """
3 | Author: 沙振宇
4 | CreateTime: 2018-12-25
5 | UpdateTime: 2019-12-12
6 | Info: 正则表达式
7 | """
8 | import re
9 |
10 | # 正则匹配处理
11 | def run(content):
12 | content = content.replace("\n", "")
13 | content = content.replace(" ", "")
14 | urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', content)
15 | for url in urls:
16 | content = content.replace(url, "")
17 | html_all = re.findall('<.*?>', content)
18 | for html in html_all:
19 | content = content.replace(html, "")
20 |
21 | ss = re.findall('[\n*\r\u4e00-\u9fa5|a-zA-Z0-9]', content)
22 | content = "".join(ss)
23 | return content
24 |
25 | if __name__=="__main__":
26 | testdict = {"1.app是啥": "", "2.tests. The test code": "", "3.itle>无标题": "", "4.何东西($)。下面": "", "5.[[:": "",
27 | "6.^\\\/\^": "", "7.^[a-z][0-9]$": "", "8.[0-9] //匹配": "", "9.行,\n表示回车。其他": "", "10.": ""}
28 | for index in testdict.keys():
29 | data = run(index)
30 | print(index,"----------------------",data)
--------------------------------------------------------------------------------
/text_similarity_master/README.md:
--------------------------------------------------------------------------------
1 | text-similarity
2 | ===============
3 | By max.zhang@2013-11-06
4 |
5 | 说明:本项目为python语言实现的文本相似度检测工具
6 |
7 | # 环境依赖
8 | * python
9 | * python-jieba
10 | * bash
11 |
12 | # 目录说明
13 | data 文件夹
14 |
15 | -stopwords.txt (停用词表)
16 |
17 | data/temp 文件夹 (存放中间结果文件和文件夹,文件中每一行均表示一个文档)
18 |
19 | -*.content 网页解析后的原始文本(有噪声)
20 |
21 | -*.ori 经过预处理后的,可用于检测的原始文本(去噪)
22 |
23 | -*.token 中文分词结果
24 |
25 | -word.dict 根据分词结果生成的特征词典
26 |
27 | -*.feat 特征向量文件
28 |
29 | -*.fprint Simhash信息指纹文件
30 |
31 | src/ 文件夹
32 |
33 | 源程序
34 |
35 |
36 | # 代码使用说明
37 |
38 | ## 判断两个文档的重复度(整合)
39 |
40 | ### 生成特征词典 (preprocess.py)
41 |
42 | brief: 对原始文本进行分词并将结果添加到特征词典中
43 |
44 | INPUT: 原始文本 + 停用词表 + 特征词典
45 |
46 | OUTPUT: 将分词结果保存到.token中,并更新特征词典文件
47 |
48 | usage:
49 |
50 | src/preprocess.py <*.ori>
51 |
52 | e.g.
53 |
54 | src/preprocess.py data/temp/doc1.ori data/stopwords.txt data/word.dict
55 |
56 | {Note: 需对待比较的两个文档分别运行一次, i.e. 两个文档的分词结果都应添加到特征词典中}
57 |
58 |
59 | ### 判断文档重复度 (isSimilar.py)
60 |
61 | brief: 判断两个文档是否重复
62 |
63 | INPUT: 文档1 + 文档2 + 停用词表 + 特征词典 + 模式选择 + 阈值
64 |
65 | OUTPUT: 输出两篇文档是否重复及相似度
66 |
67 | usage:
68 |
69 | src/isSimilar.py <-c/-s>
70 |
71 | -c/-s 选择采用VSM+CosineDistance或是Simhash+HammingDistance方法进行重复判断
72 |
73 | e.g.
74 |
75 | src/isSimilar.py data/temp/doc1.ori data/temp/doc2.ori data/stopwords.txt data/word.dict -c 0.8
76 |
77 |
78 | ## 详细处理流程(单步)
79 |
80 | ### 去噪 (webcontent-filter.sh)
81 |
82 | brief: 原始文本的初步去噪(去特殊符号、英文字母、数字 ...),消除连续空格以及删除空白行
83 |
84 | INPUT: 待去噪文本 (.content)
85 |
86 | OUTPUT: 去噪后的文本 (.ori)
87 |
88 | usage:
89 |
90 | src/webcontent_filter.sh <*.content> <*.ori>
91 |
92 | e.g.
93 |
94 | src/webcontent-filter.sh data/temp/all.content data/temp/all.ori
95 |
96 |
97 | ### 预处理
98 |
99 | #### 中文分词(tokens.py)
100 |
101 | brief: 采用Jieba分词器对去噪后的原始文本进行中文分词
102 |
103 | INPUT: 去噪后的文本 (.ori)
104 |
105 | OUTPUT: 中文分词结果 (.token)
106 |
107 | usage:
108 |
109 | ./tokens.py -s/-m <*.ori/inputfolder> <*.token/outputfolder> c/s[mode]
110 |
111 | -s[single]/-m[multiple] 对单个文本文件 (*.ori) 或对文本文件目录进行分词
112 |
113 | -s <*.ori> <*.token>
114 |
115 | -m {Note: 采用-m模式时,原始文本名最好以.ori结尾}
116 |
117 | c/s[mode] Jieba分词器模式选择
118 |
119 | c模式 jieba.cut(...)
120 |
121 | s模式 jieba.cut_for_search()
122 |
123 | e.g.
124 |
125 | src/tokens.py -s data/temp/all.ori data/temp/all.token c data/stopwords.txt
126 |
127 |
128 | #### 生成特征词典 (DictBuilder.py)
129 |
130 | brief: 根据分词结果文件或目录,生成以词频降序排列的特征词典
131 |
132 | INPUT: 中文分词结果 (.token)
133 |
134 | OUTPUT:生成的特征词典,词典格式如下:ID + 特征词 + 词频
135 |
136 | usage:
137 |
138 | src/DictBuilder.py
139 |
140 | e.g.
141 |
142 | src/DictBuilder.py data/temp/all.token data/temp/word.dict
143 |
144 |
145 | #### 生成特征向量 (features.py)
146 |
147 | brief: 根据分词结果和特征词典,生成特征向量文件
148 |
149 | INPUT: 第一步处理中分词后的文本 + 第二步生成的特征词典
150 |
151 | OUTPUT: 以行为单位生成各文档的特征向量:id1:nonzero-tf id2:nonzero-tf ...
152 |
153 | usage:
154 |
155 | src/feature.py -s/-m
156 |
157 | -s[single]/-m[multiple] 对单个分词文件 (*.token) 或对分词文件目录生成特征向量
158 |
159 | e.g.
160 |
161 | src/feature.py -s data/temp/word.dict data/temp/all.token data/temp/all.feat
162 |
163 |
164 | #### 生成Simhash指纹 (simhash_imp.py)
165 |
166 | brief: 根据分词结果和特征词典,生成信息指纹文件
167 |
168 | INPUT: 特征词典 + 特征向量文件
169 |
170 | OUTPUT: 信息指纹文件
171 |
172 | usage:
173 |
174 | src/simhash_imp.py <*.feat> <*.fprint>
175 |
176 | e.g.
177 |
178 | src/simhash_imp.py data/temp/word.dict data/temp/all.feat data/temp/all.fprint
179 |
180 | ## 单元测试
181 |
182 | cd test
183 | python test_token.py
184 |
--------------------------------------------------------------------------------
/text_similarity_master/data/stopwords.txt:
--------------------------------------------------------------------------------
1 | ,
2 | ?
3 | 、
4 | 。
5 | 《
6 | 》
7 | !
8 | ,
9 | :
10 | ;
11 | ?
12 | {
13 | |
14 | }
15 | ~
16 |
17 | 、
18 | 。
19 | ~
20 | ‖
21 | “
22 | ”
23 | 「
24 | 」
25 | 『
26 | 』
27 | 〖
28 | 〗
29 | 【
30 | 】
31 | ⊙
32 | ≮
33 | ≯
34 | ☆
35 | ★
36 | ●
37 | ◎
38 | ◇
39 | ◆
40 | ■
41 | ▲
42 | ※
43 | →
44 | 〓
45 | !
46 | ¥
47 | &
48 | (
49 | )
50 | *
51 | +
52 | ,
53 | -
54 | .
55 | /
56 | :
57 | ;
58 | >
59 | ?
60 | [
61 | \
62 | ]
63 | {
64 | }
65 | の
66 | ◢
67 | ◣
68 | ◤
69 | ◥
70 | ㊣
71 | "
72 | “
73 | ”
74 | "
75 | "
76 | ‘
77 | ’
78 | '
79 | '
80 | 〇
81 |
82 | -
83 | –
84 | —
85 | ―
86 | ︱
87 | ゛
88 | "
89 | #
90 | $
91 | &
92 | ︶
93 | *
94 | ﹐
95 | ﹑
96 | .
97 | /
98 | ﹕
99 | ;
100 | @
101 | [
102 | \
103 | ]
104 | ^
105 | _
106 | ﹍
107 | ﹎
108 | ﹏
109 | {
110 | |
111 | }
112 | ~
113 | ¨
114 | ˉ
115 | ˇ
116 | ˙
117 | ‖
118 | ‘
119 | ’
120 | ′
121 | ″
122 | ﹉
123 | ﹊
124 | ﹋
125 | ﹌
126 | ︴
127 | 〈
128 | ︿
129 | 〉
130 | ﹀
131 | 《
132 | 》
133 | 「
134 | 」
135 | 『
136 | ﹃
137 | 』
138 | 【
139 | ︻
140 | 】
141 | 〔
142 | 〕
143 | 〖
144 | 〗
145 | 〝
146 | 〞
147 | 〃
148 | 〆
149 | +
150 | ∕
151 | ⊙
152 | <
153 | =
154 | >
155 | ±
156 | ×
157 | ÷
158 | ∈
159 | ∏
160 | ∑
161 | √
162 | ∝
163 | ∟
164 | ∠
165 | ∣
166 | ∧
167 | ∨
168 | ∩
169 | ∪
170 | ∫
171 | ∮
172 | ∴
173 | ∵
174 | ∶
175 | ∷
176 | ∽
177 | ≈
178 | ≌
179 | ≒
180 | ≠
181 | ≡
182 | ≤
183 | ≥
184 | ≦
185 | ≮
186 | ≯
187 | ⊥
188 | ⊿
189 | ⌒
190 | □
191 | △
192 | ▼
193 | ▽
194 | ◇
195 | ○
196 | ◎
197 | ◢
198 | ◣
199 | ◤
200 | ◥
201 | ↑
202 | ↗
203 | →
204 | ↘
205 | ↓
206 | ↙
207 | ←
208 | ↖
209 | ─
210 | ━
211 | ┄
212 | ┅
213 | ┈
214 | ┉
215 | ═
216 | │
217 | ┃
218 | ┆
219 | ┇
220 | ┊
221 | ┋
222 | ║
223 | ┌
224 | ┍
225 | ┎
226 | ┏
227 | ╒
228 | ╓
229 | ╔
230 | ╭
231 | ┐
232 | ┑
233 | ┒
234 | ┓
235 | ╕
236 | ╖
237 | ╗
238 | ╮
239 | └
240 | ┕
241 | ┖
242 | ┗
243 | ╘
244 | ╙
245 | ╚
246 | ╰
247 | ┘
248 | ┙
249 | ┚
250 | ┛
251 | ╛
252 | ╜
253 | ╝
254 | ╯
255 | ├
256 | ┝
257 | ┞
258 | ┟
259 | ┠
260 | ┡
261 | ┢
262 | ┣
263 | ╞
264 | ╟
265 | ╠
266 | ┤
267 | ┥
268 | ┦
269 | ┧
270 | ┨
271 | ┩
272 | ┪
273 | ┫
274 | ╡
275 | ╢
276 | ╣
277 | ┬
278 | ┭
279 | ┮
280 | ┯
281 | ┰
282 | ┱
283 | ┲
284 | ┳
285 | ╤
286 | ╥
287 | ╦
288 | ┴
289 | ┵
290 | ┶
291 | ┷
292 | ┸
293 | ┹
294 | ┺
295 | ┻
296 | ╧
297 | ╨
298 | ╩
299 | ┼
300 | ┽
301 | ┾
302 | ┿
303 | ╀
304 | ╁
305 | ╂
306 | ╄
307 | ╅
308 | ╆
309 | ╇
310 | ╈
311 | ╉
312 | ╊
313 | ╋
314 | ╪
315 | ╫
316 | ╬
317 | ╱
318 | ╲
319 | ╳
320 | ▁
321 | ▏
322 | ▔
323 | ▕
324 | ▂
325 | ▎
326 | ▃
327 | ▍
328 | ▄
329 | ▌
330 | ▅
331 | ▋
332 | ▆
333 | ▇
334 | ▉
335 | █
336 | ▓
337 | ¢
338 | £
339 | ¤
340 | ¥
341 | §
342 | °
343 | ·
344 | …
345 | ‰
346 | ※
347 | 〓
348 | ☆
349 | ♀
350 | ♂
351 | 百分之
352 | 元
353 |
--------------------------------------------------------------------------------
/text_similarity_master/src/DictBuilder.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*-coding:utf8-*-
3 | '''
4 | Created on 2013-10-12
5 | @author: zyy_max
6 | @brief: build word, idf dict from input_folder
7 | @modified: 2013-10-15 ==> check whether input a folder or a file
8 | @modified: 2013-11-06 ==> build dict from token list, load ori_dict
9 | '''
10 | from collections import defaultdict
11 | import os
12 | import sys
13 |
14 |
15 | class WordDictBuilder:
16 | def __init__(self, ori_path='', filelist=[], tokenlist=[]):
17 | self.word_dict = defaultdict(int)
18 | if ori_path != '' and os.path.exists(ori_path):
19 | with open(ori_path) as ins:
20 | for line in ins.readlines():
21 | if line != '\n':
22 | self.word_dict[line.split('\t')[1]] = int(line.split('\t')[2])
23 | self.filelist = filelist
24 | self.tokenlist = tokenlist
25 |
26 | def run(self):
27 | for filepath in self.filelist:
28 | self._updateDict(filepath)
29 | self._updateDictByTokenList()
30 | return self
31 |
32 | def _updateDict(self, filepath):
33 | with open(filepath, 'r') as ins:
34 | for line in ins.readlines():
35 | for word in line.rstrip().split():
36 | self.word_dict[word] += 1
37 |
38 | def _updateDictByTokenList(self):
39 | for token in self.tokenlist:
40 | # if isinstance(token, unicode):
41 | # token = token.encode('utf8')
42 | self.word_dict[token] += 1
43 |
44 | def save(self, filepath):
45 | l = [(value, key) for key, value in self.word_dict.items()]
46 | l = sorted(l, reverse=True)
47 | result_lines = []
48 | for idx, (value, key) in enumerate(l):
49 | result_lines.append('%s\t%s\t%s%s' % (idx, key, value, os.linesep))
50 | with open(filepath, 'w', errors='ignore') as outs:
51 | outs.writelines(result_lines)
52 |
53 |
54 | if __name__ == "__main__":
55 | if len(sys.argv) < 3:
56 | # print "Usage:\tWordDictBuilder.py "
57 | exit(-1)
58 | if not os.path.isfile(sys.argv[1]):
59 | filelist = [sys.argv[1] + os.sep + f for f in os.listdir(sys.argv[1])]
60 | else:
61 | filelist = [sys.argv[1]]
62 | builder = WordDictBuilder(filelist=filelist)
63 | builder.run()
64 | builder.save(sys.argv[2])
65 |
--------------------------------------------------------------------------------
/text_similarity_master/src/DictUtils.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | '''
3 | Created on 2013-11-14
4 | @author zyy_max
5 | @brief utils for word dictionary
6 | '''
7 | from QN_Train_Model import trainModelData
8 |
9 |
10 | class WordDict(dict):
11 | """
12 | @brief init, update and save word dictionary
13 | """
14 | def __init__(self, dict_path=None):
15 | if dict_path is not None:
16 | self.load_dict(dict_path)
17 | def load_dict(self, dict_path):
18 | self.dict_path = dict_path
19 | #print 'Loading word dictionary from %s...' % dict_path
20 | self.clear()
21 | with open(dict_path, 'r') as ins:
22 | for line in ins.readlines():
23 | wordid, word = line.strip().split()
24 | if isinstance(word, str):
25 | word = word.decode('utf8')
26 | self[word] = int(wordid)
27 | return self
28 | def add_one(self, word):
29 | if isinstance(word, str):
30 | word = word.decode('utf8')
31 | if not word in self:
32 | max_id = max([0] + self.values())
33 | self[word] = max_id+1
34 | return self
35 | def save_dict(self, dict_path):
36 | #print 'Saving word dictionary to %s...' % dict_path
37 | word_list = self.items()
38 | with open(dict_path, 'w') as outs:
39 | for word, wordid in sorted(word_list):
40 | outs.write('%s\t%s\n' % (wordid, word))
41 | def __del__(self):
42 | self.save_dict(self.dict_path)
43 |
--------------------------------------------------------------------------------
/text_similarity_master/src/DocUtils.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | '''
3 | Created on 2013-11-14
4 | @author zyy_max
5 | @brief DocDict for loading docs from db or file, update and save them
6 | '''
7 |
8 | class DocDict(dict):
9 | """
10 | @brief load docs, update and
11 | """
12 | def __init__(self, fpath=None):
13 | self.fpath = fpath
14 | if fpath is not None:
15 | self.load_from_file(fpath)
16 | def load_from_db(self):
17 | #print 'Loading from db'
18 | self.clear()
19 | def load_from_file(self, fpath):
20 | #print 'Loading documents from file:',fpath
21 | self.fpath = fpath
22 | self.clear()
23 | with open(fpath, 'r') as ins:
24 | for line in ins.readlines():
25 | docid, doc_str = line.strip().split('\t')
26 | self[int(docid)] = doc_str
27 | return self
28 | def update(self, docid, doc_str):
29 | if not docid in self:
30 | self[docid] = doc_str
31 | return self
32 | def save_to_file(self, fpath):
33 | with open(fpath, 'w') as outs:
34 | for key in sorted(self.keys()):
35 | outs.write('%s\t%s\n' %(key, self[key]))
36 | def __del__(self):
37 | self.save_to_file(self.fpath)
38 |
39 |
40 |
--------------------------------------------------------------------------------
/text_similarity_master/src/Utils.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #-*-coding:utf8-*-
3 | '''
4 | @Created on 2013-10-21
5 | @author zyy_max
6 | @brief utils of common methods
7 | @modified on 2013-10-23 ==> change break condition of cosine(euclidean)_distance_nonzero
8 | '''
9 |
10 | import math
11 |
12 | def norm_vector_nonzero(ori_vec):
13 | ori_sum = math.sqrt(sum([math.pow(float(value),2) for (idx,value) in ori_vec]))
14 | if ori_sum < 1e-6:
15 | return ori_vec
16 | result_vec = []
17 | for idx, ori_value in ori_vec:
18 | result_vec.append((idx, float(ori_value)/ori_sum))
19 | #print ori_sum
20 | return result_vec
21 |
22 | def cosine_distance_nonzero(feat_vec1, feat_vec2, norm=True):
23 | if True == norm:
24 | feat_vec1 = norm_vector_nonzero(feat_vec1)
25 | feat_vec2 = norm_vector_nonzero(feat_vec2)
26 | dist = 0
27 | idx1 = 0
28 | idx2 = 0
29 | while idx1 < len(feat_vec1) and idx2 < len(feat_vec2):
30 | if feat_vec1[idx1][0] == feat_vec2[idx2][0]:
31 | dist += float(feat_vec1[idx1][1])*float(feat_vec2[idx2][1])
32 | idx1 += 1
33 | idx2 += 1
34 | elif feat_vec1[idx1][0] > feat_vec2[idx2][0]:
35 | idx2 += 1
36 | else:
37 | idx1 += 1
38 | return dist
39 |
40 | def euclidean_distance_nonzero(feat_vec1, feat_vec2, norm=True):
41 | if True == norm:
42 | feat_vec1 = norm_vector_nonzero(feat_vec1)
43 | feat_vec2 = norm_vector_nonzero(feat_vec2)
44 | dist = 0
45 | length = min(len(feat_vec1), len(feat_vec2))
46 | idx1 = 0
47 | idx2 = 0
48 | while idx1 < len(feat_vec1) and idx2 < len(feat_vec2):
49 | if feat_vec1[idx1][0] > feat_vec2[idx2][0]:
50 | dist += math.pow(float(feat_vec2[idx2][1]), 2)
51 | idx2 += 1
52 | elif feat_vec1[idx1][0] < feat_vec2[idx2][0]:
53 | dist += math.pow(float(feat_vec1[idx1][1]), 2)
54 | idx1 += 1
55 | else:
56 | dist += math.pow(float(feat_vec1[idx1][1])-float(feat_vec2[idx2][1]), 2)
57 | idx2 += 1
58 | idx1 += 1
59 | return math.sqrt(dist)
60 |
61 | def norm_vector(ori_vec):
62 | ori_sum = math.sqrt(sum([math.pow(float(x),2) for x in ori_vec]))
63 | if ori_sum < 1e-6:
64 | return ori_vec
65 | result_vec = []
66 | for ori_value in ori_vec:
67 | result_vec.append(float(ori_value)/ori_sum)
68 | #print ori_sum
69 | return result_vec
70 |
71 | def cosine_distance(feat_vec1, feat_vec2, norm=True):
72 | dist = 0
73 | if True == norm:
74 | feat_vec1 = norm_vector(feat_vec1)
75 | feat_vec2 = norm_vector(feat_vec2)
76 | for idx, feat1 in enumerate(feat_vec1):
77 | if idx >= len(feat_vec2):
78 | break
79 | if abs(float(feat1)) < 1e-6 or abs(float(feat_vec2[idx])) < 1e-6:
80 | continue
81 | dist += float(feat1)*float(feat_vec2[idx])
82 | #print dist
83 | return dist
84 |
85 | def euclidean_distance(feat_vec1, feat_vec2, norm=True):
86 | dist = 0
87 | if True == norm:
88 | feat_vec1 = norm_vector(feat_vec1)
89 | feat_vec2 = norm_vector(feat_vec2)
90 | len1 = len(feat_vec1)
91 | len2 = len(feat_vec2)
92 | for idx in xrange(min(len2,len2)):
93 | dist += math.pow(float(feat_vec1[idx])-float(feat_vec2[idx]),2)
94 | if len1 < len2:
95 | dist += sum([math.pow(float(feat),2) for feat in feat_vec2[len1-len2:]])
96 | if len1 > len2:
97 | dist += sum([math.pow(float(feat),2) for feat in feat_vec1[len2-len1:]])
98 | return math.sqrt(dist)
99 |
100 |
101 |
--------------------------------------------------------------------------------
/text_similarity_master/src/__init__.py:
--------------------------------------------------------------------------------
1 | __author__ = 'max.zhang'
2 |
--------------------------------------------------------------------------------
/text_similarity_master/src/features.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | #-*-coding:utf8-*-
3 | '''
4 | Created on 2013-10-13
5 | @author: zyy_max
6 | @brief: build feature vector with word_dict and token_list
7 | @modified: 2013-10-15 ==> add upate_word for FeatureBuilder
8 | @modified: 2013-11-06 ==> add feature_nonzero
9 | @modified: 2013-11-15 ==> add FeatureBuilderUpdate
10 | word_dict is WordDict in DictUtils
11 | '''
12 | import os,sys
13 | class FeatureBuilder:
14 | def __init__(self, word_dict):
15 | self.word_dict = word_dict
16 |
17 | # 判断预处理后的分词是否在word_dict内 存在则 word_dict对应词后的数值加1
18 | def compute(self, token_list):
19 | feature = [0]*len(self.word_dict)
20 | for token in token_list:
21 | if token in self.word_dict.keys():
22 | feature[self.word_dict[token]] += 1
23 | feature_nonzero = [(idx,value) for idx, value in enumerate(feature) if value > 0]
24 | # 返回[(idx,value),(idx,value)]
25 | return feature_nonzero
26 |
27 | def _add_word(self, word):
28 | if not word in self.word_dict:
29 | self.word_dict[word] = len(self.word_dict)
30 |
31 | def update_words(self, word_list=[]):
32 | for word in word_list:
33 | self._add_word(word)
34 |
35 | class FeatureBuilderUpdate(FeatureBuilder):
36 | def _add_word(self, word):
37 | self.word_dict.add_one(word)
38 |
39 |
40 | def feature_single(inputfile, outputfile):
41 | print(inputfile,outputfile)
42 | result_lines = []
43 | with open(inputfile, 'r') as ins:
44 | for lineidx, line in enumerate(ins.readlines()):
45 | feature = fb.compute([token.decode('utf8') for token in line.strip().split()])
46 | l = []
47 | for idx,f in feature:
48 | if f > 1e-6:
49 | l.append('%s:%s' %(idx,f))
50 | result_lines.append(' '.join(l) + os.linesep)
51 | print('Finished\r', lineidx)
52 | with open(outputfile, 'w') as outs:
53 | outs.writelines(result_lines)
54 | print('Wrote to ', outputfile)
55 |
56 | if __name__=="__main__":
57 | if len(sys.argv) < 5:
58 | #print "Usage:\tfeature.py -s/-m "
59 | exit(-1)
60 | word_dict = {}
61 | with open(sys.argv[2], 'r') as ins:
62 | for line in ins.readlines():
63 | l = line.split()
64 | word_dict[l[1].decode('utf8')] = int(l[0])
65 | fb = FeatureBuilder(word_dict)
66 | print('Loaded', len(word_dict), 'words')
67 | if sys.argv[1] == '-s':
68 | feature_single(sys.argv[3], sys.argv[4])
69 | elif sys.argv[1] == '-m':
70 | for inputfile in os.listdir(sys.argv[3]):
71 | feature_single(os.path.join(sys.argv[3],inputfile), os.path.join(sys.argv[4],inputfile.replace('.token','.feat')))
72 |
--------------------------------------------------------------------------------
/text_similarity_master/src/isSimilar.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*-coding:utf8-*-
3 | '''
4 | Created on 2013-11-06
5 | @author zyy_max
6 | @brief check the similarity of 2 documents by VSM+cosine distance or simhash+hamming distance
7 | '''
8 | import sys
9 | from .simhash_imp import SimhashBuilder, hamming_distance
10 | from .tokens import JiebaTokenizer
11 | from .features import FeatureBuilder
12 | from .Utils import norm_vector_nonzero, cosine_distance_nonzero
13 |
14 |
15 | class DocFeatLoader:
16 | def __init__(self, simhash_builder, feat_nonzero):
17 | self.feat_vec = feat_nonzero
18 | self.feat_vec = norm_vector_nonzero(self.feat_vec)
19 | self.fingerprint = simhash_builder.sim_hash_nonzero(self.feat_vec)
20 |
21 |
22 | if __name__ == "__main__":
23 | if len(sys.argv) < 7:
24 | print("Usage:\tisSimilar.py <-c/-s> ")
25 | exit(-1)
26 | doc_path_1, doc_path_2, stopword_path, word_dict, mode, threshold = sys.argv[1:]
27 | print('Arguments:', sys.argv[1:])
28 | with open(doc_path_1) as ins:
29 | doc_data_1 = ins.read().decode('utf8')
30 | print('Loaded', doc_path_1)
31 | with open(doc_path_2) as ins:
32 | doc_data_2 = ins.read().decode('utf8')
33 | print('Loaded', doc_path_2)
34 |
35 | # Init tokenizer
36 | jt = JiebaTokenizer(stopword_path, 'c')
37 |
38 | # Tokenization
39 | doc_token_1 = jt.tokens(doc_data_1)
40 | doc_token_2 = jt.tokens(doc_data_2)
41 |
42 | print('Loading word dict...')
43 | # Load word list from word_dict
44 | word_list = []
45 | with open(word_dict, 'r') as ins:
46 | for line in ins.readlines():
47 | word_list.append(line.split()[1])
48 |
49 | # Build unicode string word dict
50 | word_dict = {}
51 | for idx, ascword in enumerate(word_list):
52 | word_dict[ascword.decode('utf8')] = idx
53 | # Build nonzero-feature
54 | fb = FeatureBuilder(word_dict)
55 | doc_feat_1 = fb.compute(doc_token_1)
56 | doc_feat_2 = fb.compute(doc_token_2)
57 |
58 | # Init simhash_builder
59 | smb = SimhashBuilder(word_list)
60 |
61 | doc_fl_1 = DocFeatLoader(smb, doc_feat_1)
62 | doc_fl_2 = DocFeatLoader(smb, doc_feat_2)
63 |
64 | if mode == '-c':
65 | print('Matching by VSM + cosine distance')
66 | dist = cosine_distance_nonzero(doc_fl_1.feat_vec, doc_fl_2.feat_vec, norm=False)
67 | if dist > float(threshold):
68 | print('Matching Result:\t' % dist)
69 | else:
70 | print('Matching Result:\t' % dist)
71 | elif mode == '-s':
72 | print('Matching by Simhash + hamming distance')
73 | dist = hamming_distance(doc_fl_1.fingerprint, doc_fl_2.fingerprint)
74 | if dist < float(threshold):
75 | print('Matching Result:\t' % dist)
76 | else:
77 | print('Matching Result:\t' % dist)
78 |
--------------------------------------------------------------------------------
/text_similarity_master/src/launch.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #-*-coding:utf8-*-
3 | '''
4 | Created on 2013-10-14
5 | @author: zyy_max
6 | @brief: launch entry of near-duplicate detection system
7 | '''
8 |
9 | import os
10 | import sys
11 | from .tokens import JiebaTokenizer
12 | from .simhash_imp import SimhashBuilder, hamming_distance
13 | from .features import FeatureBuilder
14 |
15 | if __name__=="__main__":
16 | if len(sys.argv) < 7:
17 | print("Usage:\tlaunch.py word_dict_path stop_words_path fingerprint_path documents_path test_path result_path")
18 | exit(-1)
19 | # Load word list
20 | word_list = []
21 | with open(sys.argv[1], 'r') as ins:
22 | for line in ins.readlines():
23 | word_list.append(line.split()[1])
24 | # Init tokenizer
25 | jt = JiebaTokenizer(sys.argv[2], 'c')
26 | # Init feature_builder
27 | word_dict = {}
28 | for idx, ascword in enumerate(word_list):
29 | word_dict[ascword.decode('utf8')] = idx
30 | fb = FeatureBuilder(word_dict)
31 | # Init simhash_builder
32 | smb = SimhashBuilder(word_list)
33 | # Load fingerprint list
34 | fingerprint_list = []
35 | with open(sys.argv[3], 'r') as ins:
36 | for line in ins.readlines():
37 | fingerprint_list.append(int(line))
38 | # For exp: load document content
39 | doc_list = []
40 | with open(sys.argv[4], 'r') as ins:
41 | for line in ins.readlines():
42 | doc_list.append(line.strip())
43 | # Detection process begins
44 | min_sim = 64
45 | min_docid = 0
46 | with open(sys.argv[5], 'r') as ins:
47 | for lineidx, line in enumerate(ins.readlines()):
48 | if lineidx != 642:
49 | continue
50 | # Tokenize
51 | tokens = jt.tokens(line.strip().decode('utf8'))
52 | # Compute text feature
53 | feature = fb.compute(tokens)
54 | # Compute simhash
55 | fingerprint = smb.sim_hash(feature)
56 | result_list = []
57 | for idx, fp in enumerate(fingerprint_list):
58 | sim = hamming_distance(fingerprint, fp, 64)
59 | result_list.append((sim, idx))
60 | result_list = sorted(result_list, cmp=lambda x,y: cmp(x[0],y[0]))
61 | if result_list[0][0] < min_sim:
62 | min_sim, min_docid = result_list[0][0], lineidx
63 | #'''
64 | with open(sys.argv[6], 'w') as outs:
65 | outs.write(line.strip()+os.linesep)
66 | for sim, idx in result_list:
67 | outs.write('%s\t%s%s' %(sim, doc_list[idx], os.linesep))
68 | #'''
69 | #if lineidx == 2:
70 | # break
71 | print(min_sim, min_docid)
72 |
73 |
--------------------------------------------------------------------------------
/text_similarity_master/src/launch_incre.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #-*-coding:utf8-*-
3 | '''
4 | Created on 2013-10-15
5 | @author: zyy_max
6 | @brief: incremental-version launch entry of near-duplicate detection system
7 | '''
8 |
9 | import os
10 | import sys
11 | from .tokens import JiebaTokenizer
12 | from .simhash_imp import SimhashBuilder, hamming_distance
13 | from .features import FeatureBuilder
14 |
15 |
16 | class FeatureContainer:
17 | def __init__(self, word_dict_path):
18 | # Load word list
19 | self.word_dict_path = word_dict_path
20 | self.word_list = []
21 | with open(word_dict_path, 'r') as ins:
22 | for line in ins.readlines():
23 | self.word_list.append(line.split()[1])
24 | self.word_dict = {}
25 | for idx, ascword in enumerate(self.word_list):
26 | self.word_dict[ascword.decode('utf8')] = idx
27 | self.fb = FeatureBuilder(self.word_dict)
28 | self.smb = SimhashBuilder(self.word_list)
29 | print('Loaded ', len(self.word_list), 'words')
30 |
31 | def compute_feature(self, token_list):
32 | new_words = []
33 | for token in token_list:
34 | if not token in self.word_dict:
35 | new_words.append(token)
36 | if len(new_words) != 0:
37 | # Update word_list and word_dict
38 | self.fb.update_words(new_words)
39 | self.smb.update_words([word.encode('utf8') for word in new_words])
40 | self.word_dict = self.fb.word_dict
41 | self.word_list.extend([word.encode('utf8') for word in new_words])
42 | feature_vec = self.fb.compute(token_list)
43 | return feature_vec, self.smb.sim_hash(feature_vec)
44 | '''
45 | def __del__(self):
46 | with open(self.word_dict_path, 'w') as outs:
47 | for idx, word in enumerate(self.word_list):
48 | outs.write('%s\t%s%s'%(idx, word, os.linesep))
49 | '''
50 | if __name__=="__main__":
51 | if len(sys.argv) < 7:
52 | print("Usage:\tlaunch_inc.py ")
53 | exit(-1)
54 | # Init tokenizer
55 | jt = JiebaTokenizer(sys.argv[2], 'c')
56 | # Init feature_builder and simhash_builder
57 | fc = FeatureContainer(sys.argv[1])
58 | # Load fingerprint list
59 | fingerprint_list = []
60 | with open(sys.argv[3], 'r') as ins:
61 | for line in ins.readlines():
62 | fingerprint_list.append(int(line))
63 | # For exp: load document content
64 | doc_list = []
65 | with open(sys.argv[4], 'r') as ins:
66 | for line in ins.readlines():
67 | doc_list.append(line.strip())
68 | # Detection process begins
69 | min_sim = 64
70 | min_docid = 0
71 | with open(sys.argv[5], 'r') as ins:
72 | for lineidx, line in enumerate(ins.readlines()):
73 | # Tokenize
74 | tokens = jt.tokens(line.strip().decode('utf8'))
75 | feature, fingerprint = fc.compute_feature(tokens)
76 | result_list = []
77 | for idx, fp in enumerate(fingerprint_list):
78 | sim = hamming_distance(fingerprint, fp, 64)
79 | result_list.append((sim, idx))
80 | result_list = sorted(result_list, cmp=lambda x,y: cmp(x[0],y[0]))
81 | if result_list[0][0] < min_sim:
82 | min_sim, min_docid = result_list[0][0], lineidx
83 | #'''
84 | with open(sys.argv[6], 'w') as outs:
85 | outs.write(line.strip()+os.linesep)
86 | for sim, idx in result_list:
87 | outs.write('%s\t%s%s' %(sim, doc_list[idx], os.linesep))
88 | #'''
89 | #if lineidx == 2:
90 | # break
91 | with open('word_dict_new.txt', 'w') as outs:
92 | for idx, word in enumerate(fc.word_list):
93 | outs.write('%s\t%s%s'%(idx, word, os.linesep))
94 |
95 |
--------------------------------------------------------------------------------
/text_similarity_master/src/preprocess.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #-*-coding:utf8-*-
3 | '''
4 | Created on 2013-11-06
5 | @author zyy_max
6 | @brief update word_dict by token result of document
7 | '''
8 | import os
9 | import sys
10 | import time
11 | from .tokens import JiebaTokenizer
12 | from .DictBuilder import WordDictBuilder
13 |
14 | if __name__=="__main__":
15 | if len(sys.argv) < 4:
16 | print("Usage:\tpreprocess.py ")
17 | exit(-1)
18 | doc_path, stopword_path, worddict_path = sys.argv[1:]
19 | print('Arguments:',sys.argv[1:])
20 |
21 | # Init tokenizer
22 | jt = JiebaTokenizer(stopword_path, 'c')
23 | # Load doc data
24 | with open(doc_path) as ins:
25 | doc_data = ins.read().decode('utf8')
26 | # Tokenization
27 | doc_tokens = jt.tokens(doc_data)
28 | # Write to token file
29 | with open(doc_path[:doc_path.rfind('.')]+'.token', 'w') as outs:
30 | outs.write('/'.join([token.encode('utf8') for token in doc_tokens]))
31 |
32 | # Load original word dict, update and save
33 | wdb = WordDictBuilder(worddict_path, tokenlist=doc_tokens)
34 | wdb.run()
35 | wdb.save(worddict_path)
36 | print('Totally', len(wdb.word_dict), 'words')
37 |
38 |
--------------------------------------------------------------------------------
/text_similarity_master/src/simhash_imp.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding=utf-8 -*-
3 | '''
4 | Created on 2013-10-13
5 | @author: zyy_max
6 | @brief: build simhash and compute hamming_distance
7 | @modified: 2013-10-15 ==> add update_word for SimhashBuilder
8 | '''
9 |
10 | # Implementation of Charikar simhashes in Python
11 | # See: http://dsrg.mff.cuni.cz/~holub/sw/shash/#a1
12 |
13 | import os, sys
14 |
15 | def hamming_distance(hash_a, hash_b, hashbits=128):
16 | x = (hash_a ^ hash_b) & ((1 << hashbits) - 1)
17 | tot = 0
18 | while x:
19 | tot += 1
20 | x &= x-1
21 | return tot
22 | class SimhashBuilder:
23 | def __init__(self, word_list=[], hashbits=128):
24 | self.hashbits = hashbits
25 | self.hashval_list = [self._string_hash(word) for word in word_list]
26 | print('Totally: %s words' ,(len(self.hashval_list)))
27 | """
28 | with open('word_hash.txt', 'w') as outs:
29 | for word in word_list:
30 | outs.write(word+'\t'+str(self._string_hash(word))+os.linesep)
31 | """
32 |
33 | def _string_hash(self, word):
34 | # A variable-length version of Python's builtin hash
35 | if word == "":
36 | return 0
37 | else:
38 | x = ord(word[0])<<7
39 | m = 1000003
40 | mask = 2**self.hashbits-1
41 | for c in word:
42 | x = ((x*m)^ord(c)) & mask
43 | x ^= len(word)
44 | if x == -1:
45 | x = -2
46 | return x
47 |
48 | def sim_hash_nonzero(self, feature_vec):
49 | finger_vec = [0]*self.hashbits
50 | # Feature_vec is like [(idx,nonzero-value),(idx,nonzero-value)...]
51 | for idx, feature in feature_vec:
52 | hashval = self.hashval_list[int(idx)]
53 | for i in range(self.hashbits):
54 | bitmask = 1<= 0:
63 | fingerprint += 1 << i
64 | #整个文档的fingerprint为最终各个位大于等于0的位的和
65 | return fingerprint
66 |
67 | def sim_hash(self, feature_vec):
68 | finger_vec = [0]*self.hashbits
69 | for idx, feature in enumerate(feature_vec):
70 | if float(feature) < 1e-6:
71 | continue
72 | hashval = self.hashval_list[idx]
73 | for i in range(self.hashbits):
74 | bitmask = 1<= 0:
83 | fingerprint += 1 << i
84 | #整个文档的fingerprint为最终各个位大于等于0的位的和
85 | return fingerprint
86 |
87 | def _add_word(self, word):
88 | self.hashval_list.append(self._string_hash(word))
89 |
90 | def update_words(self, word_list=[]):
91 | for word in word_list:
92 | self._add_word(word)
93 |
94 | class simhash():
95 | def __init__(self, tokens='', hashbits=128):
96 | self.hashbits = hashbits
97 | self.hash = self.simhash(tokens)
98 |
99 | def __str__(self):
100 | return str(self.hash)
101 |
102 | def __long__(self):
103 | return long(self.hash)
104 |
105 | def __float__(self):
106 | return float(self.hash)
107 |
108 | def simhash(self, tokens):
109 | # Returns a Charikar simhash with appropriate bitlength
110 | v = [0]*self.hashbits
111 |
112 | for t in [self._string_hash(x) for x in tokens]:
113 | bitmask = 0
114 | #print (t)
115 | for i in range(self.hashbits):
116 | bitmask = 1 << i
117 | #print(t,bitmask, t & bitmask)
118 | if t & bitmask:
119 | v[i] += 1 #查看当前bit位是否为1,是的话则将该位+1
120 | else:
121 | v[i] += -1 #否则得话,该位减1
122 |
123 | fingerprint = 0
124 | for i in range(self.hashbits):
125 | if v[i] >= 0:
126 | fingerprint += 1 << i
127 | #整个文档的fingerprint为最终各个位大于等于0的位的和
128 | return fingerprint
129 |
130 | def _string_hash(self, v):
131 | # A variable-length version of Python's builtin hash
132 | if v == "":
133 | return 0
134 | else:
135 | x = ord(v[0])<<7
136 | m = 1000003
137 | mask = 2**self.hashbits-1
138 | for c in v:
139 | x = ((x*m)^ord(c)) & mask
140 | x ^= len(v)
141 | if x == -1:
142 | x = -2
143 | return x
144 |
145 | def hamming_distance(self, other_hash):
146 | x = (self.hash ^ other_hash.hash) & ((1 << self.hashbits) - 1)
147 | tot = 0
148 | while x:
149 | tot += 1
150 | x &= x-1
151 | return tot
152 |
153 | def similarity(self, other_hash):
154 | a = float(self.hash)
155 | b = float(other_hash)
156 | if a>b: return b/a
157 | return a/b
158 |
159 | if __name__ == '__main__':
160 | #看看哪些东西google最看重?标点?
161 | #s = '看看哪些东西google最看重?标点?'
162 | #hash1 =simhash(s.split())
163 | #print("0x%x" % hash1)
164 | #print ("%s\t0x%x" % (s, hash1))
165 |
166 | #s = '看看哪些东西google最看重!标点!'
167 | #hash2 = simhash(s.split())
168 | #print ("%s\t[simhash = 0x%x]" % (s, hash2))
169 |
170 | #print '%f%% percent similarity on hash' %(100*(hash1.similarity(hash2)))
171 | #print hash1.hamming_distance(hash2),"bits differ out of", hash1.hashbits
172 |
173 | if len(sys.argv) < 4:
174 | print("Usage:\tsimhash_imp.py ")
175 | exit(-1)
176 | word_list = []
177 | with open(sys.argv[1], 'r') as ins:
178 | for idx, line in enumerate(ins.readlines()):
179 | word_list.append(line.split()[1])
180 | print('\rloading word', idx)
181 | sim_b = SimhashBuilder(word_list)
182 | result_lines = []
183 | print('')
184 | with open(sys.argv[2], 'r') as ins:
185 | for idx, line in enumerate(ins.readlines()):
186 | print('\rprocessing doc', idx)
187 | feature_vec = line.strip().split()
188 | feature_vec = [(int(item.split(':')[0]),float(item.split(':')[1])) for item in feature_vec]
189 | fingerprint = sim_b.sim_hash_nonzero(feature_vec)
190 | result_lines.append(str(fingerprint)+os.linesep)
191 | with open(sys.argv[3], 'w') as outs:
192 | outs.writelines(result_lines)
193 |
194 |
195 |
196 |
--------------------------------------------------------------------------------
/text_similarity_master/src/tokens.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*- coding: utf-8 -*-
3 | '''
4 | Created on 20131012
5 | @author: zyy_max
6 |
7 | @brief: get tokens from input file by jieba
8 | '''
9 | import jieba
10 | import os
11 | import sys
12 |
13 |
14 | class JiebaTokenizer:
15 | def __init__(self, stop_words_path, mode='s'):
16 | self.stopword_set = set()
17 | # load stopwords
18 | with open(stop_words_path,encoding='utf-8') as ins:
19 | for line in ins:
20 | self.stopword_set.add(line.strip())
21 | self.mode = mode
22 |
23 | def tokens(self, intext):
24 | intext = u' '.join(intext.split())
25 | if self.mode == 's':
26 | token_list = jieba.cut_for_search(intext)
27 | segList = []
28 | for item in token_list:
29 | if item not in self.stopword_set:
30 | segList.append(item)
31 | token_list = segList
32 | else:
33 | token_list = jieba.cut(intext)
34 | segList = []
35 | for item in token_list:
36 | if item not in self.stopword_set:
37 | segList.append(item)
38 | token_list = segList
39 | return [token for token in token_list if token.strip() != u'' and not token in self.stopword_set]
40 |
41 |
42 | def token_single_file(input_fname, output_fname):
43 | result_lines = []
44 | with open(input_fname) as ins:
45 | for line in ins:
46 | line = line.strip()
47 | tokens = jt.tokens(line)
48 | result_lines.append(u' '.join(tokens))
49 | open(output_fname, 'w').write(os.linesep.join(result_lines))
50 | print('Wrote to ', output_fname)
51 |
52 |
53 | if __name__ == "__main__":
54 | if len(sys.argv) < 6 or sys.argv[1] not in ['-s', '-m'] or sys.argv[4] not in ['c', 's']:
55 | # print "Usage:\ttokens.py " \
56 | # " "
57 | # print "file_mode:\t-s:\tsingle file"
58 | # print "\t\t-m:\tmultiple files"
59 | # print "cut_mode:\tc:\tnormal mode of Jieba"
60 | # print "\t\ts:\tcut_for_search mode of Jieba"
61 | exit(-1)
62 | file_mode, input_filepath, output_filepath, cut_mode, stopword_file = sys.argv[1:]
63 | jt = JiebaTokenizer(stopword_file, cut_mode)
64 | # extract tokens and filter by stopwords
65 | if file_mode == '-s':
66 | token_single_file(input_filepath, output_filepath)
67 | elif file_mode == '-m':
68 | for input_file in os.listdir(input_filepath):
69 | prefix = input_file.rsplit(os.sep, 1)[0]
70 | token_single_file(os.path.join(input_filepath, input_file),
71 | os.path.join(output_filepath, prefix + '.token'))
72 |
--------------------------------------------------------------------------------
/text_similarity_master/src/webcontent_filter.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Delete nonprint characters
3 | # Delete 0-9a-zA-z and some useless characters
4 | # Turn sequence of empty char to single one
5 | # Delete empty lines
6 | sed 's/[^[:print:]]//g' $1 \
7 | | sed 's/[0-9a-zA-Z+=\./:\"<>|_]/ /g' \
8 | | sed 's/ */ /g' > $2
9 | # sed '/^ *$/d' > $2
10 |
--------------------------------------------------------------------------------
/text_similarity_master/test/test_token.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*- coding: utf-8 -*-
3 | '''
4 | Created on 20150825
5 | @author: zyy_max
6 |
7 | @brief: unit test of src/tokens.py
8 | '''
9 | import unittest
10 | import sys
11 | sys.path.append('..')
12 | from src.tokens import JiebaTokenizer
13 |
14 |
15 | class JiebaTokenizerTestCase(unittest.TestCase):
16 |
17 | def setUp(self):
18 | self.jt = JiebaTokenizer("../data/stopwords.txt")
19 |
20 | def testTokens(self):
21 | in_text = u"完整的单元测试很少只执行一个测试用例," \
22 | u"开发人员通常都需要编写多个测试用例才能" \
23 | u"对某一软件功能进行比较完整的测试,这些" \
24 | u"相关的测试用例称为一个测试用例集,在" \
25 | u"PyUnit中是用TestSuite类来表示的。"
26 | tokens_text = u"完整/单元/测试/单元测试/只/执行/" \
27 | u"一个/测试/试用/测试用例/开发/发人/" \
28 | u"人员/开发人员/通常/需要/编写/多个/" \
29 | u"测试/试用/测试用例/软件/功能/进行/" \
30 | u"比较/完整/测试/相关/测试/试用/测试用例/" \
31 | u"称为/一个/测试/试用/测试用例/集/PyUnit/" \
32 | u"中是/TestSuite/类来/表示"
33 | self.assertEqual(tokens_text, u'/'.join(self.jt.tokens(in_text)), "Tokenization Results differ")
34 |
35 | if __name__ == "__main__":
36 | unittest.main()
37 |
--------------------------------------------------------------------------------
/效果图.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShaShiDiZhuanLan/Demo_TFIDF_Simhash_Python/e9289fc211aa39f10a22d9d8a1a741323f6b50f8/效果图.png
--------------------------------------------------------------------------------