{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/characterchat-learning-towards-conversational","title":"CharacterChat: Learning towards Conversational AI with Personalized Social Support","arxiv_id":"2308.10278","date":"2023-08-20","proceeding":null,"authors":["Quan Tu","Chuanqi Chen","Jinpeng Li","Yanran Li","Shuo Shang","Dongyan Zhao","Ran Wang","Rui Yan"],"abstract":"In our modern, fast-paced, and interconnected world, the importance of mental well-being has grown into a matter of great urgency. However, traditional methods such as Emotional Support Conversations (ESC) face challenges in effectively addressing a diverse range of individual personalities. In response, we introduce the Social Support Conversation (S2Conv) framework. It comprises a series of support agents and the interpersonal matching mechanism, linking individuals with persona-compatible virtual supporters. Utilizing persona decomposition based on the MBTI (Myers-Briggs Type Indicator), we have created the MBTI-1024 Bank, a group that of virtual characters with distinct profiles. Through improved role-playing prompts with behavior preset and dynamic memory, we facilitate the development of the MBTI-S2Conv dataset, which contains conversations between the characters in the MBTI-1024 Bank. Building upon these foundations, we present CharacterChat, a comprehensive S2Conv system, which includes a conversational model driven by personas and memories, along with an interpersonal matching plugin model that dispatches the optimal supporters from the MBTI-1024 Bank for individuals with specific personas. Empirical results indicate the remarkable efficacy of CharacterChat in providing personalized social support and highlight the substantial advantages derived from interpersonal matching. The source code is available in \\url{https://github.com/morecry/CharacterChat}.","url_abs":"https://arxiv.org/abs/2308.10278v1","url_pdf":"https://arxiv.org/pdf/2308.10278v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"characterchat-learning-towards-conversational","repo_url":"https://github.com/morecry/characterchat","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.10278","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.10278"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/morecry/characterchat","reach":{"status":"ok"}}],"summary":{"ran":10,"unverified":5},"by_repo_kind":{"official":{"samples":15,"ran":10,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":15,"samples":[{"code_sha256_prefix":"a81180dd6ffc1627","entry":"count_aspect","repo":"morecry/characterchat","repo_kind":"official","path":"model/demo/web_supporter.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/demo/web_supporter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a81180dd6ffc1627"}},{"code_sha256_prefix":"4d68ea76773402d1","entry":"eval_sentence","repo":"morecry/characterchat","repo_kind":"official","path":"src/dial/query_data.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/src/dial/query_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4d68ea76773402d1"}},{"code_sha256_prefix":"792ea15d0ed52b15","entry":"evaluate","repo":"morecry/characterchat","repo_kind":"official","path":"model/BERT/train_persona_score.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/BERT/train_persona_score.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"792ea15d0ed52b15"}},{"code_sha256_prefix":"d9462412b8996c22","entry":"get_data","repo":"morecry/characterchat","repo_kind":"official","path":"src/dial/query_data.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/src/dial/query_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d9462412b8996c22"}},{"code_sha256_prefix":"689c2172e71d92cc","entry":"get_dial_score","repo":"morecry/characterchat","repo_kind":"official","path":"src/eval_dial/query_data.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/src/eval_dial/query_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"689c2172e71d92cc"}},{"code_sha256_prefix":"2384edaf1dcef2b1","entry":"get_memory","repo":"morecry/characterchat","repo_kind":"official","path":"model/demo/chat_demo.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/demo/chat_demo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2384edaf1dcef2b1"}},{"code_sha256_prefix":"57ff12c6746eb2a7","entry":"get_profile","repo":"morecry/characterchat","repo_kind":"official","path":"src/profile/query_data.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/src/profile/query_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"57ff12c6746eb2a7"}},{"code_sha256_prefix":"5efb4305d6662763","entry":"get_score","repo":"morecry/characterchat","repo_kind":"official","path":"model/demo/chat_demo.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/demo/chat_demo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5efb4305d6662763"}},{"code_sha256_prefix":"7810300b81e8c62e","entry":"load_dataset","repo":"morecry/characterchat","repo_kind":"official","path":"model/BERT/train_persona_score.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/BERT/train_persona_score.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7810300b81e8c62e"}},{"code_sha256_prefix":"f71a9f4977817bcf","entry":"process_content","repo":"morecry/characterchat","repo_kind":"official","path":"src/dial/query_data.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/src/dial/query_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f71a9f4977817bcf"}},{"code_sha256_prefix":"f3aee772066ba9d5","entry":"gen_dial","repo":"morecry/characterchat","repo_kind":"official","path":"model/demo/web_supporter.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/demo/web_supporter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f3aee772066ba9d5"}},{"code_sha256_prefix":"89aea2db7b527e3e","entry":"gen_dial_list","repo":"morecry/characterchat","repo_kind":"official","path":"src/dial/make_data.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/src/dial/make_data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"89aea2db7b527e3e"}},{"code_sha256_prefix":"5d25feb67172fcaf","entry":"get_dataset","repo":"morecry/characterchat","repo_kind":"official","path":"model/BERT/util.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/BERT/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5d25feb67172fcaf"}},{"code_sha256_prefix":"a0b6eee4ca6e0090","entry":"get_memory","repo":"morecry/characterchat","repo_kind":"official","path":"model/demo/web_supporter.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/demo/web_supporter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a0b6eee4ca6e0090"}},{"code_sha256_prefix":"6681fc262a4fb058","entry":"process_dataset","repo":"morecry/characterchat","repo_kind":"official","path":"model/BERT/util.py","file_url":"https://github.com/morecry/characterchat/blob/HEAD/model/BERT/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6681fc262a4fb058"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}