├── .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 | ![image](https://github.com/ShaShiDiZhuanLan/Demo_TFIDF_Simhash_Python/blob/master/%E6%95%88%E6%9E%9C%E5%9B%BE.png) 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 --------------------------------------------------------------------------------