# -*- coding: utf-8 -*- # ===================================================== # UNIFIED PATTERNS AND CONSTANTS # Module-level constants for better pickle compatibility # ===================================================== import re import os from bs4 import BeautifulSoup # Move all patterns to module level for ProcessPoolExecutor compatibility CHAPTER_PATTERNS = [ # English patterns (r'chapter[\s_-]*(\d+)', re.IGNORECASE, 'english_chapter'), (r'\bch\.?\s*(\d+)\b', re.IGNORECASE, 'english_ch'), (r'part[\s_-]*(\d+)', re.IGNORECASE, 'english_part'), (r'episode[\s_-]*(\d+)', re.IGNORECASE, 'english_episode'), # Chinese patterns (r'第\s*(\d+)\s*[章节話话回]', 0, 'chinese_chapter'), (r'第\s*([一二三四五六七八九十百千万]+)\s*[章节話话回]', 0, 'chinese_chapter_cn'), (r'(\d+)[章节話话回]', 0, 'chinese_short'), # Japanese patterns (r'第\s*(\d+)\s*話', 0, 'japanese_wa'), (r'第\s*(\d+)\s*章', 0, 'japanese_chapter'), (r'その\s*(\d+)', 0, 'japanese_sono'), (r'(\d+)話目', 0, 'japanese_wame'), # Korean patterns (r'제\s*(\d+)\s*[장화권부편]', 0, 'korean_chapter'), (r'(\d+)\s*[장화권부편]', 0, 'korean_short'), (r'에피소드\s*(\d+)', 0, 'korean_episode'), # Generic numeric patterns (r'^\s*(\d+)\s*[-–—.\:]', re.MULTILINE, 'generic_numbered'), (r'_(\d+)\.x?html?$', re.IGNORECASE, 'filename_number'), (r'/(\d+)\.x?html?$', re.IGNORECASE, 'path_number'), (r'(\d+)', 0, 'any_number'), ] FILENAME_EXTRACT_PATTERNS = [ # IMPORTANT: More specific patterns MUST come first r'^\d{3}(\d)_(\d{2})_\.x?html?$', # Captures both parts for decimal: group1.group2 r'^\d{4}_(\d+)\.x?html?$', # "0000_1.xhtml" - extracts 1, not 0000 r'^\d+_(\d+)[_\.]', # Any digits followed by underscore then capture next digits r'^(\d+)[_\.]', # Standard: "0249_" or "0249." r'response_(\d+)_', # Standard pattern: response_001_ r'response_(\d+)\.', # Pattern: response_001. r'(\d{3,5})[_\.]', # 3-5 digit pattern with padding r'[Cc]hapter[_\s]*(\d+)', # Chapter word pattern r'[Cc]h[_\s]*(\d+)', # Ch abbreviation r'No(\d+)Chapter', # No prefix with Chapter - matches "No00013Chapter.xhtml" r'No(\d+)Section', # No prefix with Section - matches "No00013Section.xhtml" r'No(\d+)(?=\.|_|$)', # No prefix followed by end, dot, or underscore (not followed by text) r'第(\d+)[章话回]', # Chinese chapter markers r'_(\d+)(?:_|\.|$)', # Number between underscores or at end r'^(\d+)(?:_|\.|$)', # Starting with number r'(\d+)', # Any number (fallback) ] CJK_HONORIFICS = { 'korean': [ # Modern honorifics '님', '씨', '선배', '후배', '동기', '형', '누나', '언니', '오빠', '동생', '선생님', '교수님', '박사님', '사장님', '회장님', '부장님', '과장님', '대리님', '팀장님', '실장님', '이사님', '전무님', '상무님', '부사장님', '고문님', '대표님', '원장님', '국장님', '차장님', '주임님', '반장님', '작가님', '기자님', '피디님', '감독님', '매니저님', '코치님', # Classical/formal honorifics '공', '옹', '군', '양', '낭', '랑', '생', '자', '부', '모', '시', '제', '족하', # Royal/noble address forms '마마', '마노라', '대감', '영감', '나리', '도령', '낭자', '아씨', '규수', '각하', '전하', '폐하', '저하', '합하', '대비', '대왕', '왕자', '공주', '빈궁', '중전', '세자', '군주', '태자', '성군', # Buddhist/religious '스님', '사부님', '조사님', '큰스님', '화상', '대덕', '대사', '법사', '선사', '율사', '보살님', '거사님', '신부님', '목사님', '장로님', '집사님', '전도사님', '수녀님', '교황님', '주교님', # Confucian/scholarly '부자', '선생', '대인', '어른', '어르신', '존자', '현자', '군자', '대부', '학사', '진사', '문하생', '제자', '유생', '선비', # Kinship honorifics '어르신', '할아버님', '할머님', '아버님', '어머님', '형님', '누님', '아주버님', '아주머님', '삼촌', '이모님', '고모님', '외삼촌', '장인어른', '장모님', '시아버님', '시어머님', '처남', '처형', '매형', '손님', '사돈', '백부님', '숙부님', # Verb-based honorific endings and speech levels (expanded) '습니다', 'ㅂ니다', '습니까', 'ㅂ니까', '시다', '세요', '셔요', '십시오', '시오', '이에요', '예요', '이예요', '에요', '어요', '아요', '여요', '해요', '이세요', '으세요', '으시', '시', '으십니다', '십니다', '으십니까', '십니까', '으셨', '셨', '드립니다', '드려요', '드릴게요', '드리겠습니다', '올립니다', '올려요', '사옵니다', '사뢰', '여쭙니다', '여쭤요', '아뢰', '뵙니다', '뵈요', '모십니다', '시지요', '시죠', '시네요', '시는군요', '시는구나', '으실', '실', '드시다', '잡수시다', '주무시다', '계시다', '가시다', '오시다', # Common verb endings with 있다/없다/하다 '있어요', '있습니다', '있으세요', '있으십니까', '없어요', '없습니다', '없으세요', '해요', '합니다', '하세요', '하십시오', '하시죠', '하시네요', '했어요', '했습니다', '되세요', '되셨어요', '되십니다', '됩니다', '되요', '돼요', '이야', '이네', '이구나', '이군', '이네요', '인가요', '인가', '일까요', '일까', '거예요', '거에요', '겁니다', '건가요', '게요', '을게요', '을까요', '었어요', '었습니다', '겠습니다', '겠어요', '겠네요', '을겁니다', '을거예요', '을거에요', # Common endings '요', '죠', '네요', '는데요', '거든요', '니까', '으니까', '는걸요', '군요', '구나', '는구나', '는군요', '더라고요', '더군요', '던데요', '나요', '가요', '까요', '라고요', '다고요', '냐고요', '자고요', '란다', '단다', '냔다', '잔다', # Formal archaic endings '나이다', '사옵나이다', '옵니다', '오', '소서', '으오', '으옵소서', '사이다', '으시옵니다', '시옵니다', '으시옵니까', '시옵니까', '나이까', '리이까', '리이다', '옵소서', '으소서', '소이다', '로소이다', '이옵니다', '이올시다', '하옵니다' ], 'japanese': [ # Modern honorifics 'さん', 'ちゃん', '君', 'くん', '様', 'さま', '先生', 'せんせい', '殿', 'どの', '先輩', 'せんぱい', # Classical/historical '氏', 'し', '朝臣', 'あそん', '宿禰', 'すくね', '連', 'むらじ', '臣', 'おみ', '君', 'きみ', '真人', 'まひと', '道師', 'みちのし', '稲置', 'いなぎ', '直', 'あたい', '造', 'みやつこ', # Court titles '卿', 'きょう', '大夫', 'たいふ', '郎', 'ろう', '史', 'し', '主典', 'さかん', # Buddhist titles '和尚', 'おしょう', '禅師', 'ぜんじ', '上人', 'しょうにん', '聖人', 'しょうにん', '法師', 'ほうし', '阿闍梨', 'あじゃり', '大和尚', 'だいおしょう', # Shinto titles '大宮司', 'だいぐうじ', '宮司', 'ぐうじ', '禰宜', 'ねぎ', '祝', 'はふり', # Samurai era '守', 'かみ', '介', 'すけ', '掾', 'じょう', '目', 'さかん', '丞', 'じょう', # Keigo (honorific language) verb forms 'です', 'ます', 'ございます', 'いらっしゃる', 'いらっしゃいます', 'おっしゃる', 'おっしゃいます', 'なさる', 'なさいます', 'くださる', 'くださいます', 'いただく', 'いただきます', 'おります', 'でございます', 'ございません', 'いたします', 'いたしました', '申す', '申します', '申し上げる', '申し上げます', '存じる', '存じます', '存じ上げる', '伺う', '伺います', '参る', '参ります', 'お目にかかる', 'お目にかかります', '拝見', '拝見します', '拝聴', '拝聴します', '承る', '承ります', # Respectful prefixes/suffixes 'お', 'ご', '御', 'み', '美', '貴', '尊' ], 'chinese': [ # Modern forms '先生', '小姐', '夫人', '公子', '大人', '老师', '师父', '师傅', '同志', '同学', # Ancient/classical forms '子', '丈', '翁', '公', '侯', '伯', '叔', '仲', '季', '父', '甫', '卿', '君', '生', # Imperial court '陛下', '殿下', '千岁', '万岁', '圣上', '皇上', '天子', '至尊', '御前', '爷', # Nobility/officials '阁下', '大人', '老爷', '相公', '官人', '郎君', '娘子', '夫子', '足下', # Religious titles '上人', '法师', '禅师', '大师', '高僧', '圣僧', '神僧', '活佛', '仁波切', '真人', '天师', '道长', '道友', '仙长', '上仙', '祖师', '掌教', # Scholarly/Confucian '夫子', '圣人', '贤人', '君子', '大儒', '鸿儒', '宗师', '泰斗', '巨擘', # Martial arts '侠士', '大侠', '少侠', '女侠', '英雄', '豪杰', '壮士', '义士', # Family/kinship '令尊', '令堂', '令郎', '令爱', '贤弟', '贤侄', '愚兄', '小弟', '家父', '家母', # Humble forms '在下', '小人', '鄙人', '不才', '愚', '某', '仆', '妾', '奴', '婢', # Polite verbal markers '请', '请问', '敢问', '恭请', '敬请', '烦请', '有请', '请教', '赐教', '惠顾', '惠赐', '惠存', '笑纳', '雅正', '指正', '斧正', '垂询', '拜', '拜见', '拜访', '拜读', '拜托', '拜谢', '敬上', '谨上', '顿首' ], 'english': [ # Modern Korean romanizations (Revised Romanization of Korean - 2000) '-nim', '-ssi', '-seonbae', '-hubae', '-donggi', '-hyeong', '-nuna', '-eonni', '-oppa', '-dongsaeng', '-seonsaengnim', '-gyosunim', '-baksanim', '-sajangnim', '-hoejangnim', '-bujangnim', '-gwajangnim', '-daerim', '-timjangnim', '-siljangnim', '-isanim', '-jeonmunim', '-sangmunim', '-busajangnim', '-gomunnim', # Classical/formal Korean romanizations '-gong', '-ong', '-gun', '-yang', '-nang', '-rang', '-saeng', '-ja', '-bu', '-mo', '-si', '-je', '-jokha', # Royal/noble Korean romanizations '-mama', '-manora', '-daegam', '-yeonggam', '-nari', '-doryeong', '-nangja', '-assi', '-gyusu', '-gakha', '-jeonha', '-pyeha', '-jeoha', '-hapka', '-daebi', '-daewang', '-wangja', '-gongju', # Buddhist/religious Korean romanizations '-seunim', '-sabunim', '-josanim', '-keunseunim', '-hwasang', '-daedeok', '-daesa', '-beopsa', '-seonsa', '-yulsa', '-bosalnim', '-geosanim', '-sinbunim', '-moksanim', '-jangnonim', '-jipsanim', # Confucian/scholarly Korean romanizations '-buja', '-seonsaeng', '-daein', '-eoreun', '-eoreusin', '-jonja', '-hyeonja', '-gunja', '-daebu', '-haksa', '-jinsa', '-munhasaeng', '-jeja', # Kinship Korean romanizations '-harabeonim', '-halmeonim', '-abeonim', '-eomeonim', '-hyeongnim', '-nunim', '-ajubeonim', '-ajumeonim', '-samchon', '-imonim', '-gomonim', '-oesamchon', '-jangineoreun', '-jangmonim', '-siabeonim', '-sieomeonim', '-cheonam', '-cheohyeong', '-maehyeong', '-sonnim', # Korean verb endings romanized (Revised Romanization) '-seumnida', '-mnida', '-seumnikka', '-mnikka', '-sida', '-seyo', '-syeoyo', '-sipsio', '-sio', '-ieyo', '-yeyo', '-iyeyo', '-eyo', '-eoyo', '-ayo', '-yeoyo', '-haeyo', '-iseyo', '-euseyo', '-eusi', '-si', '-eusimnida', '-simnida', '-eusimnikka', '-simnikka', '-eusyeot', '-syeot', '-deurimnida', '-deuryeoyo', '-deurilgeyo', '-deurigesseumnida', '-ollimnida', '-ollyeoyo', '-saomnida', '-saroe', '-yeojjumnida', '-yeojjwoyo', '-aroe', '-boemnida', '-boeyo', '-mosimnida', '-sijiyo', '-sijyo', '-sineyo', '-sineungunyo', '-sineunguna', '-eusil', '-sil', '-deusida', '-japsusida', '-jumusida', '-gyesida', '-gasida', '-osida', # Common Korean verb endings romanized '-isseoyo', '-isseumnida', '-isseuseyo', '-isseusimnikka', '-eopseoyo', '-eopseumnida', '-eopseuseyo', '-hamnida', '-haseyo', '-hasipsio', '-hasijyo', '-hasineyo', '-haesseoyo', '-haesseumnida', '-doeseyo', '-doesyeosseoyo', '-doesimnida', '-doemnida', '-doeyo', '-dwaeyo', '-iya', '-ine', '-iguna', '-igun', '-ineyo', '-ingayo', '-inga', '-ilkkayo', '-ilkka', '-geoyeyo', '-geoeyo', '-geomnida', '-geongayo', '-geyo', '-eulgeyo', '-eulkkayo', '-eosseoyo', '-eosseumnida', '-gesseumnida', '-gesseoyo', '-genneyo', '-eulgeommida', '-eulgeoyeyo', '-eulgeoeyo', # Common Korean endings romanized '-yo', '-jyo', '-neyo', '-neundeyo', '-geodeunyo', '-nikka', '-eunikka', '-neungeolyo', '-gunyo', '-guna', '-neunguna', '-neungunyo', '-deoragoyo', '-deogunyo', '-deondeyo', '-nayo', '-gayo', '-kkayo', '-ragoyo', '-dagoyo', '-nyagoyo', '-jagoyo', '-randa', '-danda', '-nyanda', '-janda', # Formal archaic Korean romanized '-naida', '-saomnaida', '-omnida', '-o', '-soseo', '-euo', '-euopsoseo', '-saida', '-eusiomnida', '-siomnida', '-eusiomnikka', '-siomnikka', '-naikka', '-riikka', '-riida', '-opsoseo', '-eusoseo', '-soida', '-rosoida', '-iomnida', '-iolsida', '-haomnida', # Japanese keigo romanized (keeping existing) '-san', '-chan', '-kun', '-sama', '-sensei', '-senpai', '-dono', '-shi', '-tan', '-chin', '-desu', '-masu', '-gozaimasu', '-irassharu', '-irasshaimasu', '-ossharu', '-osshaimasu', '-nasaru', '-nasaimasu', '-kudasaru', '-kudasaimasu', '-itadaku', '-itadakimasu', '-orimasu', '-degozaimasu', '-gozaimasen', '-itashimasu', '-itashimashita', '-mousu', '-moushimasu', '-moushiageru', '-moushiagemasu', '-zonjiru', '-zonjimasu', '-ukagau', '-ukagaimasu', '-mairu', '-mairimasu', '-haiken', '-haikenshimasu', # Chinese romanizations (keeping existing) '-xiong', '-di', '-ge', '-gege', '-didi', '-jie', '-jiejie', '-meimei', '-shixiong', '-shidi', '-shijie', '-shimei', '-gongzi', '-guniang', '-xiaojie', '-daren', '-qianbei', '-daoyou', '-zhanglao', '-shibo', '-shishu', '-shifu', '-laoshi', '-xiansheng', '-daxia', '-shaoxia', '-nvxia', '-jushi', '-shanren', '-dazhang', '-zhenren', 'benzuo', 'bengong', 'benwang', 'benshao', 'zhen', 'gu', 'laozi', 'zaixia', 'pindao', 'xiaodao', 'nucai', 'chen', 'qie', 'wanbei', 'bixia', 'dianxia', 'niangniang', 'laoda', 'laoban', 'zhanggui', 'xiaoer', 'shizhu', # Ancient Chinese romanizations '-zi', '-gong', '-hou', '-bo', '-jun', '-qing', '-weng', '-fu', '-sheng', '-lang', '-langjun', '-niangzi', '-furen', '-gege', '-jiejie', '-yeye', '-nainai', # Chinese politeness markers romanized '-qing', '-jing', '-gong', '-hui', '-ci', '-bai', '-gan', '-chui', 'qingwen', 'ganwen', 'gongjing', 'jingjing', 'baijian', 'baifang', 'baituo' ] } TITLE_PATTERNS = { 'korean': [ # Modern titles r'\b(왕|여왕|왕자|공주|황제|황후|대왕|대공|공작|백작|자작|남작|기사|장군|대장|원수|제독|함장|대신|재상|총리|대통령|시장|지사|검사|판사|변호사|의사|박사|교수|신부|목사|스님|도사)\b', r'\b(폐하|전하|각하|예하|님|대감|영감|나리|도련님|아가씨|부인|선생)\b', # Historical/classical titles r'\b(대왕|태왕|왕비|왕후|세자|세자빈|대군|군|옹주|공주|부마|원자|원손)\b', r'\b(영의정|좌의정|우의정|판서|참판|참의|정승|판사|사또|현령|군수|목사|부사)\b', r'\b(대제학|제학|대사간|사간|대사헌|사헌|도승지|승지|한림|사관|내시|환관)\b', r'\b(병조판서|이조판서|호조판서|예조판서|형조판서|공조판서)\b', r'\b(도원수|부원수|병마절도사|수군절도사|첨절제사|만호|천호|백호)\b', r'\b(정일품|종일품|정이품|종이품|정삼품|종삼품|정사품|종사품|정오품|종오품)\b', # Korean honorific verb endings patterns r'(습니다|ㅂ니다|습니까|ㅂ니까|세요|셔요|십시오|시오)$', r'(이에요|예요|이예요|에요|어요|아요|여요|해요)$', r'(으시|시)(었|겠|ㄹ|을|는|던)*(습니다|ㅂ니다|어요|아요|세요)', r'(드립니다|드려요|드릴게요|드리겠습니다|올립니다|올려요)$', r'(사옵니다|여쭙니다|여쭤요|뵙니다|뵈요|모십니다)$', r'(나이다|사옵나이다|옵니다|으오|으옵소서|사이다)$' ], 'japanese': [ # Modern titles r'\b(王|女王|王子|姫|皇帝|皇后|天皇|皇太子|大王|大公|公爵|伯爵|子爵|男爵|騎士|将軍|大将|元帥|提督|艦長|大臣|宰相|総理|大統領|市長|知事|検事|裁判官|弁護士|医者|博士|教授|神父|牧師|僧侶|道士)\b', r'\b(陛下|殿下|閣下|猊下|様|大人|殿|卿|君|氏)\b', # Historical titles r'\b(天皇|皇后|皇太子|親王|内親王|王|女王|太政大臣|左大臣|右大臣|内大臣|大納言|中納言|参議)\b', r'\b(関白|摂政|征夷大将軍|管領|執権|守護|地頭|代官|奉行|与力|同心)\b', r'\b(太政官|神祇官|式部省|治部省|民部省|兵部省|刑部省|大蔵省|宮内省)\b', r'\b(大僧正|僧正|大僧都|僧都|律師|大法師|法師|大禅師|禅師)\b', r'\b(正一位|従一位|正二位|従二位|正三位|従三位|正四位|従四位|正五位|従五位)\b', r'\b(大和守|山城守|摂津守|河内守|和泉守|伊賀守|伊勢守|尾張守|三河守|遠江守)\b', # Japanese keigo (honorific language) patterns r'(です|ます|ございます)$', r'(いらっしゃ|おっしゃ|なさ|くださ)(います|いました|る|った)$', r'(いただ|お|ご|御)(き|きます|きました|く|ける|けます)', r'(申し上げ|申し|存じ上げ|存じ|伺い|参り)(ます|ました|る)$', r'(拝見|拝聴|承り|承)(します|しました|いたします|いたしました)$', r'お[^あ-ん]+[になる|になります|くださる|くださいます]' ], 'chinese': [ # Modern titles r'\b(王|女王|王子|公主|皇帝|皇后|大王|大公|公爵|伯爵|子爵|男爵|骑士|将军|大将|元帅|提督|舰长|大臣|宰相|总理|大总统|市长|知事|检察官|法官|律师|医生|博士|教授|神父|牧师|和尚|道士)\b', r'\b(陛下|殿下|阁下|大人|老爷|夫人|小姐|公子|少爷|姑娘|先生)\b', # Imperial titles r'\b(天子|圣上|皇上|万岁|万岁爷|太上皇|皇太后|太后|皇后|贵妃|妃|嫔|贵人|常在|答应)\b', r'\b(太子|皇子|皇孙|亲王|郡王|贝勒|贝子|公主|格格|郡主|县主|郡君|县君)\b', # Ancient official titles r'\b(丞相|相国|太师|太傅|太保|太尉|司徒|司空|大司马|大司农|大司寇)\b', r'\b(尚书|侍郎|郎中|员外郎|主事|知府|知州|知县|同知|通判|推官|巡抚|总督)\b', r'\b(御史大夫|御史中丞|监察御史|给事中|都察院|翰林院|国子监|钦天监)\b', r'\b(大学士|学士|侍读|侍讲|编修|检讨|庶吉士|举人|进士|状元|榜眼|探花)\b', # Military ranks r'\b(大元帅|元帅|大将军|将军|都督|都指挥使|指挥使|千户|百户|总兵|副将|参将|游击|都司|守备)\b', r'\b(提督|总兵官|副总兵|参将|游击将军|都司|守备|千总|把总|外委)\b', # Religious titles r'\b(国师|帝师|法王|活佛|堪布|仁波切|大和尚|方丈|住持|首座|维那|知客)\b', r'\b(天师|真人|道长|掌教|监院|高功|都讲|总理|提点|知观)\b', # Nobility ranks r'\b(公|侯|伯|子|男|开国公|郡公|国公|郡侯|县侯|郡伯|县伯|县子|县男)\b', r'\b(一品|二品|三品|四品|五品|六品|七品|八品|九品|正一品|从一品|正二品|从二品)\b', # Chinese politeness markers r'(请|敢|恭|敬|烦|有)(问|请|赐|教|告|示)', r'(拜|惠|赐|垂|雅|笑)(见|访|读|托|谢|顾|赐|存|纳|正|询)', r'(敬|谨|顿)(上|呈|启|白|首)' ], 'english': [ # Western titles r'\b(King|Queen|Prince|Princess|Emperor|Empress|Duke|Duchess|Marquis|Marquess|Earl|Count|Countess|Viscount|Viscountess|Baron|Baroness|Knight|Lord|Lady|Sir|Dame|General|Admiral|Captain|Major|Colonel|Commander|Lieutenant|Sergeant|Minister|Chancellor|President|Mayor|Governor|Judge|Doctor|Professor|Father|Reverend|Master|Mistress)\b', r'\b(His|Her|Your|Their)\s+(Majesty|Highness|Grace|Excellency|Honor|Worship|Lordship|Ladyship)\b', # Romanized historical titles r'\b(Tianzi|Huangdi|Huanghou|Taizi|Qinwang|Junwang|Beile|Beizi|Gongzhu|Gege|Bixia|Dianxia|Niangniang|Fuma|Wangye)\b', r'\b(Chengxiang|Zaixiang|Taishi|Taifu|Taibao|Taiwei|Situ|Sikong|Dasima)\b', r'\b(Shogun|Daimyo|Samurai|Ronin|Ninja|Tenno|Mikado|Kampaku|Sessho)\b', r'\b(Taewang|Wangbi|Wanghu|Seja|Daegun|Gun|Ongju|Gongju|Buma)\b' ] } # Expanded Chinese numbers including classical forms # Chinese compound surnames (two-character surnames) CHINESE_COMPOUND_SURNAMES = { '司马', '欧阳', '上官', '诸葛', '慕容', '皇甫', '尉迟', '公孙', '轩辕', '令狐', '南宫', '东方', '西门', '独孤', '完颜', '赫连', '澹台', '公羊', '钟离', '长孙', '宇文', '百里', '呼延', '东郭', '南门', '羊舌', '微生', '梁丘', '左丘', '段干', '端木', '夏侯' } # Common single-character Chinese surnames CHINESE_SINGLE_SURNAMES = { '赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危' } # Chinese cultivation/xianxia terms (common in web novels) CHINESE_CULTIVATION_TERMS = { 'realms': [ '练气', '筑基', '金丹', '元婴', '化神', '炼虚', '合体', '渡劫', '大乘', '凝气', '开光', '融合', '心动', '灵寂', '出窍', '分神', '反虚', '天劫', '先天', '后天', '武徒', '武者', '武师', '大武师', '武灵', '武王', '武皇', '武帝', '武圣', '斗之气', '斗者', '斗师', '大斗师', '斗灵', '斗王', '斗皇', '斗宗', '斗尊', '斗圣', '斗帝' ], 'techniques': [ '剑诀', '心法', '功法', '秘术', '神通', '法术', '仙术', '道法', '魔功', '剑法', '刀法', '掌法', '拳法', '指法', '腿法', '身法', '步法', '御剑术', '御剑飞行', '遁术', '遁法', '土遁', '火遁', '水遁' ], 'items': [ '法宝', '灵器', '仙器', '神器', '圣器', '道器', '魔器', '丹药', '灵丹', '仙丹', '神丹', '灵石', '灵晶', '仙石', '灵草', '灵药', '仙草', '天材地宝', '灵兽', '妖兽', '凶兽' ], 'titles': [ '真人', '道友', '师兄', '师姐', '师弟', '师妹', '掌教', '长老', '太上长老', '峰主', '殿主', '宗主', '教主', '盟主', '魔头', '散修', '剑修', '体修', '炼丹师', '炼器师', '阵法师', '符师' ], 'locations': [ '洞府', '洞天', '秘境', '小世界', '福地', '圣地', '禁地', '遗迹', '山门', '主峰', '灵峰', '药园', '藏经阁', '传功殿', '炼器阁' ] } # Chinese wuxia terms (martial arts novels) CHINESE_WUXIA_TERMS = { 'skills': [ '轻功', '内功', '外功', '硬功', '软功', '气功', '真气', '内力', '降龙十八掌', '六脉神剑', '九阴真经', '九阳神功', '易筋经', '葵花宝典' ], 'sects': [ '少林', '武当', '峨眉', '华山', '恒山', '衡山', '嵩山', '泰山', '全真', '古墓', '桃花岛', '丐帮', '明教', '日月神教', '星宿', '门派', '教派', '帮派', '世家', '家族' ], 'ranks': [ '武林盟主', '一流高手', '二流高手', '三流高手', '绝顶高手', '宗师', '大宗师', '先天宗师', '大侠', '少侠', '女侠' ] } # Common Chinese terms found in web novels (Wuxia/Xianxia/Xuanhuan) CHINESE_NOVEL_TERMS = { 'cultivation': [ '气', '丹田', '经脉', '真气', '元气', '灵气', '仙气', '玄气', '斗气', '魔气', '鬼气', '妖气', '煞气', '罡气', '剑气', '刀气', '金丹', '元婴', '筑基', '练气', '心魔', '识海', '神识', '元神', '灵魂', '肉身', '法身', '道', '阴阳', '五行', '武', '功', '法', '术', '神通', '道法', '仙术', '禁制', '阵法', '符箓', '劫', '天劫', '雷劫', '心魔劫', '飞升', '渡劫', '顿悟', '闭关', '出关', '夺舍', '转世', '轮回', '炼丹', '炼器', '炼阵', '炼符', '双修', '炉鼎', '采补', '辟谷' ], 'beings': [ '仙', '魔', '妖', '鬼', '神', '人', '龙', '凤', '麒麟', '玄武', '白虎', '朱雀', '尊者', '圣人', '大帝', '天尊', '道祖', '真人', '上仙', '散仙', '地仙', '天仙', '金仙', '散修', '邪修', '魔修', '鬼修', '妖修', '剑修', '体修', '法修', '器灵', '傀儡' ], 'world': [ '江湖', '武林', '天下', '宗门', '帮', '派', '家', '世家', '皇朝', '帝国', '圣地', '仙界', '神界', '魔界', '妖界', '鬼界', '凡间', '俗世', '修真界', '秘境', '遗迹', '洞府', '福地', '洞天', '禁地', '绝地', '坊市', '拍卖会' ], 'address_self': [ '本座', '本宫', '本王', '本少', '本皇', '本帝', '本尊', '本圣', '朕', '孤', '寡人', '老子', '老夫', '老身', '老朽', '老衲', '在下', '鄙人', '小道', '贫道', '贫僧', '小僧', '不才', '奴才', '臣', '妾', '妾身', '晚辈', '小弟', '小妹', '学生', '弟子', '徒儿' ], 'address_others': [ '陛下', '殿下', '娘娘', '王爷', '侯爷', '老大', '老板', '掌柜', '小二', '道友', '施主', '大师', '师太', '真人', '仙子', '仙长', '前辈', '后辈', '小友', '师尊', '师父', '师傅', '师兄', '师弟', '师姐', '师妹', '师叔', '师伯', '师祖', '兄台', '仁兄', '贤弟', '公子', '少爷', '小姐', '姑娘', '夫人', '老爷', '太太' ], 'measurements': [ '里', '丈', '尺', '寸', '斤', '两', '时辰', '刻', '分', '息', '炷香', '盏茶', '元', '文', '两', '贯' ], 'items': [ '法宝', '灵宝', '仙宝', '古宝', '灵器', '法器', '仙器', '神器', '丹药', '灵丹', '仙丹', '毒丹', '废丹', '灵石', '仙石', '灵晶', '玄石', '纳戒', '储物袋', '储物戒指', '乾坤袋', '玉简', '功法', '秘籍', '图谱', '灵草', '灵药', '仙草', '天材地宝' ] } # Chinese relationship and family terms (important for character relationships) CHINESE_RELATIONSHIP_TERMS = { 'family': [ '父亲', '母亲', '爷爷', '奶奶', '外公', '外婆', '伯父', '伯母', '叔父', '叔母', '姑父', '姑母', '姨父', '姨母', '舅父', '舅母', '哥哥', '姐姐', '弟弟', '妹妹', '兄长', '兄弟', '姐妹', '儿子', '女儿', '孙子', '孙女', '外孙', '外孙女', '夫君', '夫人', '妻子', '夫妻', '娘子', '娘亲', '相公' ], 'master_disciple': [ '师父', '师尊', '师傅', '师娘', '师祖', '师父祖', '太师父', '徒弟', '徒儿', '师兄', '师姐', '师弟', '师妹', '师叔', '师伯', '师兄弟', '师姐妹', '同门', '师门', '亲传弟子', '内门弟子', '外门弟子' ], 'sworn': [ '义父', '义母', '义兄', '义弟', '义兄弟', '义子', '结义', '义结金兰', '殃血为盟', '拜把兄弟' ], 'romantic': [ '道侣', '伴侣', '知己', '红颜', '知己', '佳人', '爱人', '未婚妻', '未婚夫', '娘子', '如意郎君' ] } # Chinese mythological and historical elements CHINESE_MYTHOLOGICAL_TERMS = { 'creatures': [ '龙', '凤凰', '麒麟', '玄武', '白虎', '朱雀', '青龙', '天马', '龙马', '神鹰', '凤凰', '火凤', '冰凤', '虎', '狼', '豹', '熊', '鹰', '蛇', '蛟', '蛟龙', '龙龟', '神兽', '圣兽', '妖兽', '魔兽', '凶兽', '荒兽' ], 'divine_artifacts': [ '上古神器', '先天灵宝', '先天至宝', '混沌至宝', '开天神斧', '盘古幡', '太极图', '混沌钟', '造化鼎', '九鼎', '十大神器', '上古十大凶剑' ], 'heavenly': [ '天庭', '天宫', '天界', '人间', '地界', '冥界', '修罗界', '阿修罗界', '九重天', '三十三天', '三十三重天', '九幽', '黄泉', '三界', '六道', '六道轮回', '八荒', '四海' ], 'legendary': [ '三皇', '五帝', '盘古', '女娲', '伏義', '神农', '烎帝', '黄帝', '仙人', '真仭', '大能', '大帝', '天尊', '圣人', '至尊', '道祖' ] } # Chinese elemental and natural forces CHINESE_ELEMENTAL_TERMS = { 'five_elements': [ '金', '木', '水', '火', '土', '金属性', '木属性', '水属性', '火属性', '土属性', '金灵根', '木灵根', '水灵根', '火灵根', '土灵根', '五行', '五行之力', '五行相生', '五行相克' ], 'yin_yang': [ '阴', '阳', '阴阳', '阴阳之力', '阴阳二气', '阴阳调和', '至阴', '至阳', '纯阴', '纯阳', '太阴', '太阳', '阴气', '阳气', '阴寒', '阳炎' ], 'natural_forces': [ '风', '雷', '冰', '电', '光', '暗', '空间', '时间', '风属性', '雷属性', '冰属性', '电属性', '狂风', '雷霆', '冰霆', '火焰', '水流', '地震', '天地玄黄', '混沌之力', '鸿蒙之气', '先天之气' ] } # Chinese body cultivation and physique types CHINESE_PHYSIQUE_TERMS = { 'special_physiques': [ '先天道体', '先天霸体', '先天圣体', '混沌体', '九阴体', '九阳体', '阴阳体', '五行体', '剑体', '剑骨', '刀骨', '剑心', '刀心', '霸体', '圣体', '魔体', '仙体', '神体', '无垢道体', '无漏金身', '金刚不坏', '不死之身' ], 'spiritual_roots': [ '灵根', '天灵根', '地灵根', '天资', '根骨', '单灵根', '双灵根', '三灵根', '四灵根', '五灵根', '异灵根', '变异灵根', '绝世灵根', '废灵根', '伪灵根', '双修', '全灵根' ] } # Chinese treasure and artifact grades CHINESE_TREASURE_GRADES = { 'grades': [ '凡器', '凡品', '普通', '低阶', '中阶', '高阶', '灵器', '宝器', '法器', '道器', '仙器', '神器', '圣器', '下品', '中品', '上品', '极品', '绝品', '天阶', '地阶', '玄阶', '黄阶', '一品', '二品', '三品', '四品', '五品', '六品', '七品', '八品', '九品' ], 'pill_grades': [ '一纹', '二纹', '三纹', '四纹', '五纹', '六纹', '七纹', '八纹', '九纹', '一转', '二转', '三转', '四转', '五转', '六转', '七转', '八转', '九转', '丹云', '丹纹', '丹雷', '丹香' ] } # Chinese naming conventions and patterns CHINESE_NAME_PATTERNS = { 'courtesy_names': [ # Pattern: Character + 字 (courtesy name marker) r'[\u4e00-\u9fff]{1,2}字[\u4e00-\u9fff]{1,2}', # X字Y format ], 'generation_names': [ # Common generation name characters (used in family naming) '文', '武', '明', '德', '仁', '义', '礼', '智', '信', '宝', '珍', '玉', '金', '银', '富', '贵', '康', '宁', '光', '耀', '华', '荣', '昌', '盛', '兴', '隆' ], 'title_prefixes': [ # Common prefixes for titles and names in novels '老', '小', '大', '少', '诸', # Old, Young, Great, Young Master, All '无', '玄', '火', '冰', '雷', '风', '天', '魔', '剑', '刀', # Elemental prefixes '龙', '凤', '虎', '鹰', '狼', '豹', # Animal prefixes '圣', '魔', '仙', '神', '鬼', '妖' # Divine/demonic prefixes ], 'clan_prefixes': [ # Common clan/family name structures '家族', '世家', '氏族', '宗族', '一族', '皇族', '神族', '魔族', '妖族', '古族' ] } # Additional cultivation power systems (system novels, game novels) CHINESE_POWER_SYSTEMS = { 'levels': [ '一级', '二级', '三级', '四级', '五级', '六级', '七级', '八级', '九级', '十级', '初级', '中级', '高级', '顶级', '工级', '一阶', '二阶', '三阶', '四阶', '五阶', '六阶', '七阶', '八阶', '九阶', '青铜', '白银', '黄金', '铂金', '钻石', '王者', '皇者' ], 'stars_moons': [ '一星', '二星', '三星', '四星', '五星', '六星', '七星', '八星', '九星', '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '一轮', '二轮', '三轮', '四轮', '五轮', '六轮', '七轮', '八轮', '九轮', '半月', '满月', '新月' ], 'circles_rings': [ '一环', '二环', '三环', '四环', '五环', '六环', '七环', '八环', '九环', '一圈', '二圈', '三圈', '四圈', '五圈', '六圈', '七圈', '八圈', '九圈', '魂环', '魂圈', '灵环', '灵圈' ], 'colors': [ '白色', '黄色', '紫色', '黑色', '红色', '蓝色', '绿色', '金色', '银色', '白级', '黄级', '紫级', '黑级', '红级', '蓝级', '绿级', '金级', '银级' ] } # Chinese location types (common in novels) CHINESE_LOCATION_TYPES = { 'buildings': [ '宫', '殿', '阁', '堂', '馆', '院', '楼', '轩', '亭', '台', '大殿', '主殿', '左殿', '右殿', '偷殿', '后殿', '藏经阁', '传功阁', '炼器阁', '炼丹阁', '任务大厅' ], 'natural': [ '山', '峰', '岭', '水', '河', '湖', '海', '江', '谷', '林', '洞', '主峰', '北峰', '南峰', '东峰', '西峰', '大山', '神山', '魔山', '仙山', '灵山', '星海', '星空', '星域', '星球', '星辰' ], 'regions': [ '域', '境', '界', '地', '州', '郡', '城', '镇', '村', '坊', '东域', '西域', '南域', '北域', '中域', '上界', '中界', '下界', '下位界', '中位界', '上位界', '修真界', '仙界', '神界', '魔界', '佛界', '妖界' ] } # Chinese battle and technique descriptors CHINESE_BATTLE_TERMS = { 'attack_types': [ '攻击', '防御', '身法', '步法', '速度', '力量', '剑气', '刀气', '拳劲', '掌力', '指力', '腿力', '真元', '魂力', '精神力', '神识', '神念' ], 'techniques_suffixes': [ '诀', '法', '术', '功', '心法', '秘法', '神通', '一式', '一招', '一击', '一指', '一掌', '一剑', '一刀' ], 'power_descriptors': [ '无敌', '无双', '无上', '至强', '至尊', '极致', '绝世', '霸道', '王道', '圣道', '仙道', '神道', '魔道' ] } CHINESE_NUMS = { # Basic numbers '一': 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, '三十': 30, '四十': 40, '五十': 50, '六十': 60, '七十': 70, '八十': 80, '九十': 90, '百': 100, # Classical/formal numbers '壹': 1, '贰': 2, '叁': 3, '肆': 4, '伍': 5, '陆': 6, '柒': 7, '捌': 8, '玖': 9, '拾': 10, '佰': 100, '仟': 1000, '萬': 10000, '万': 10000, # Ordinal indicators '第一': 1, '第二': 2, '第三': 3, '第四': 4, '第五': 5, '首': 1, '次': 2, '初': 1, '末': -1, } # Gender indicator patterns for pronoun-based gender detection # Note: These are PRONOUNS, not titles or honorifics GENDER_PRONOUNS = { 'korean': { 'male': ['그는', '그가', '그를', '그의', '그에게', '그도', '그만', '그조차', '그한테'], 'female': ['그녀는', '그녀가', '그녀를', '그녀의', '그녀에게', '그녀도', '그녀만', '그녀조차', '그녀한테'], }, 'japanese': { 'male': ['彼は', '彼が', '彼を', '彼の', '彼に', '彼も', '彼だけ', '彼こそ'], 'female': ['彼女は', '彼女が', '彼女を', '彼女の', '彼女に', '彼女も', '彼女だけ', '彼女こそ'], }, 'chinese': { 'male': ['他', '他的', '他们', '他说', '他是', '他在', '他会', '他想'], 'female': ['她', '她的', '她们', '她说', '她是', '她在', '她会', '她想'], }, 'english': { 'male': [' he ', ' his ', ' him ', ' himself ', 'He ', 'His ', 'Him '], 'female': [' she ', ' her ', ' hers ', ' herself ', 'She ', 'Her ', 'Hers '], } } # Common words - keeping the same for filtering COMMON_WORDS = { '마음', '시청자', '물론', '평균', '퇴근', '회장', '작가', '진짜', '이미', '보내기', '잠', '그런데', '소문', '언제나', '거대한', '성공', '방송', '그날', '이렇게', '생판', '유동', '파이', '이해', '그게', '면접', '처음', '누구', '확고', '판매', '소비', '만족', '고정', '고등학', '금기', '우선', '노래', '참가', '편집', '실명', '관리', '생방송', '중독', '첫날', '방장', '상남', '실행', '최근', '실력', '기존', '토크', '효과', '애교', '충족', '최고', '근무', '장비', '발전', '이미지', '매력', '부각', '이용', '본인', '설명', '이적', '경쟁', '초반', '선구', '대기업', '전환', '컨텐츠', '당연', '얼굴', '기회', '나이', '이제', '후에', '설마', '상황', '사진', '중반', '비슷', '문제', '최초', '인방', '정리', '합방', '황금', '정도', '시작', '논란', '유명', '인지도', '지금', '예전', '옛날', '휴방', '데뷔', '인원', '관심', '화질', '능력', '오디션', '성장', '지원', '낙수', '시원', '유치원', '매니저', '사람', '무렵', '돈', '경력', '내용', '숫자', '닉네임', '공간', '직접', '적당', '초장', '연말', '각인', '침묵', '소개', '감정', '사회', '다양', '고사', '악질', '복장', '아무', '이후', '오전', '오랜만', '신청', '싸움', '오늘', '후원', '종료', '관련', '체급', '적절', '주최', '자료', '여유', '사전', '원래', '명실상', '자화', '피해', '소통', '하나', '이상', '몰입', '감동', '퀄리티', '기술', '단어', '서비스', '잠시', '환기', '선배', '자세', '주위', '오히려', '이야기', '도입', '이유', '확인', '중요', '최적', '추가', '갤러리', '텃세', '부분', '대성', '간단', '젊은', '응원', '소유', '휴식', '최종', '합격', '충분', '진지', '하이라이트', '승리', '생각', '순간', '냉철', '기회주의', '고집', '반응', '아이돌', '화려', '기억', '일상', '매일', '목소리', '무대', '중간', '배신', '의견', '순식간', '낚시', '당장', '연습', '과거', '팬덤', '일정', '불만', '욕망', '수익', '확실', '취미', '여론', '대상', '탈락', '사과', '대학', '집중', '회의', '포식', '제외', '욕심', '변수', '변화', '경우', '은근', '부족', '입장', '비교', '콘서트', '분위기', '오프닝', '모습', '후보', '메인', '인사', '인터뷰', '감성', '해소', '강행', '결과', '노출', '방법', '영상', '하차', '연장', '이탈', '구매', '의아', '합류', '준비', '일개', '머리', '시간', '미성년', '믿음', '초보', '장기', '규칙', '계속', '정신', '덕분', '각자', '크루', '멤버', '단순', '본격', '이름', '당첨', '결혼', '애매', '사소', '팀', '다툼', '리더', '서로', '정보', '가입', '갈등', '프리카', '수혜', '수작', '탐방', '소중', '연애', '자격', '자연', '경계', '활약', '최대', '댓글', '힘', '참교육', '게임', '대결', '미션', '정착', '화면', '팬서비스', '패배', '탑', '은인', '상승', '초심', '거래', '양해', '진정', '당시', '설득', '멸망전', '수정', '재생', '세력', '교육', '서버', '퇴출', '극대화', '화제', '탈퇴', '숙련', '유튜브', '요즘', '최소화', '조건', '경악', '잠', '조선', '수입', '발표', '성사', '의미', '자리', '호기심', '초기', '뷰어십', '입주', '시절', '수장', '모집', '나머지', '탓', '세상', '권력', '일', '월드', '대화', '미래', '회복', '안정', '평청', '팬', '재화', '사용', '접속', '운영', '제작', '규모', '박수', '흥분', '경례', '웃음', '해설', '방심', '개', '레드', '칼날', '밴픽', '노방종', '인턴', '파밍', '마법', '증가', '차이', '시점', '노력', '조력', '그대', '다이아', '광질', '방해', '멘탈', '나름', '무법', '별명', '아이템', '수면', '고객', '노동', '인식', '주입', '건축', '컨트롤', '완성', '호갱', '멋진', '재료', '이동', '갑옷', '추종', '실망', '후배', '막대', '오픈', '남성', '기습', '난동', '자유', '원하', '인맥', '사실', '포함', '정확', '친절', '자영업', '사채업', '지하', '반전', '인연', '무조건', '여론조작', '금지', '전체', '선물', '정규', '혼자', '보유', '진행', '지지', '우승', '롤', '바닥', '범죄', '정상화', '순순', '매력', '희생', '여럿', '경기', '열광', '본인', '진심', '현역', '개인', '직원', '감탄', '폭주', '시상식', '종일', '수상', '내년', '올해', '평가', '탄생', '최연장', '압도', '퇴역', '브이', '안내', '폭발', '공격', '취침', '자금', '독재', '사업', '친구', '역사', '확실', '성대', '삼행', '오빠', '소진', '무력화', '원거리', '고조', '계획', '틈새', '뜻', '동업', '예열', '증폭', '후반', '존재', '펀딩', '수뇌', '수중도', '최강', '단체', '배팅', '최소한', '순서', '기본', '재산', '특정', '경매', '고생', '등장', '굉장', '채팅', '기선', '흥행', '협력', '인기', '급', '납득', '차량', '집합', '반박', '무기', '활성화', '이득', '중요', '포인트', '업로드', '중계', '기자', '전투', '조용', '자신감', '대결', '견제', '적중', '작동', '훈련', '절대', '경험', '자원', '대담', '이모', '생활', '구경', '단숨', '동일', '이내', '티어', '영향력', '역할', '인생', '입장', '담당', '익숙', '데뷔', '활동', '공개', '남자', '걷기', '예선', '마감', '자급', '팀원', '범위', '매장', '암살', '부분', '미드', '파악', '최악', '개발', '시즌', '특별', '데이트', '마스크', '식사', '치킨', '여유', '시기', '잠깐', '기대', '스킬', '관계', '결승전', '즐거', '고모', '가격', '증거', '준비', '넉넉', '공용', '강화', '마스터', '직업', '배달', '생존', '완벽', '칭호', '사냥터', '즐겨찾기', '손목', '케이크', '전직', '사망', '농부', '가능', '강철', '비용', '강력', '그림', '점검', '발견', '구간', '약속', '요리', '획득', '감시', '베스트', '레이드', '얼음', '최단', '이야기', '화제', '청소', '원작', '단일', '소녀', '주주', '도전', '유리', '한국', '파티', '대회', '전국', '국제', '스탯', '개척', '너프', '진화', '놀이터', '히든', '안녕', '이', '그', '저', '우리', '너희', '자기', '당신', '여기', '거기', '저기', '오늘', '내일', '어제', '지금', '아까', '나중', '먼저', '다음', '마지막', '모든', '어떤', '무슨', '이런', '그런', '저런', '같은', '다른', '새로운', '하다', '있다', '없다', '되다', '하는', '있는', '없는', '되는', '것', '수', '때', '년', '월', '일', '시', '분', '초', '은', '는', '이', '가', '을', '를', '에', '의', '와', '과', '도', '만', '에서', '으로', '로', '까지', '부터', '에게', '한테', '께', '께서', # Expanded Common Nouns (based on debug findings) '어린이사', '반드', '번째', '수시로', '시청', '그렇고', '거라', '어느덧', '학창', '아기', '전혀', '동안', '당사', '부글', '진작', '돈을', '아니', '것도', '일이', '쏟아', '루시가', '방접', '나도', '해보', '그렇게', '뭔가', '사이', '회귀', '돌기', '스토리가', '주인', '라고', '세금을', '캔디를', '구독', '주식을', '어떻게든', '대해', '허무맹', '대규', '주딱이', '시장을', '현재', '아바타', '방송을', '그날', '이렇게', '생판', '유동', '파이가', '이해', '그게', '거기서', '나로서는', '면접', '좋으', '처음', '만들고', '누구도', '확고', '말하', '판매', '소비', '만족', '고정', '모르게', '고등학', '금기', '우선', '노래를', '어영', '받은', '버츄얼', '제대로', '끌기', '참가', '편집', '실명', '관리', '움직이기', '그러다보니', '일단', '생방송', '밝히', '꺼내', '것이기에', '방송이', '이슈가', '거의', '중독', '첫날', '방장', '올라가기', '도배되기', '내가', '드가', '남은', '찍은', '줄어드는', '거기에', '상남', '실행', '듣자마', '확인한', '최근', '실력이', '부랴', '기존의', '토크', '베테', '효과가', '애교를', '들어오는', '잘하', '충족', '되기', '그때', '최고', '근무', '장비', '없으면', '발전', '이미지가', '매력을', '부각', '이용', '하며', '본인의', '먹고', '설명하', '이적', '경쟁', '초반', '선구', '서아', '대기업', '전환', '살짝', '도게', '약한', '이거', '컨텐츠', '보이기', '당연', '얼굴도', '돌파한', '기회가', '생기', '나이를', '이제', '후에', '이러', '설마', '상황을', '사진이', '돌파하는', '중반', '비슷한', '그만큼', '말부터', '문제가', '생길지도', '아무도', '작성하기', '최초로', '인방', '정리하', '해주', '합방', '황금', '정도', '시작하', '아저', '아조', '초등학', '이것도', '논란이', '될지', '왕코', '유명하', '때를', '나는', '형이', '누가', '인지도', '지금은', '갑자기', '예전', '옛날', '휴방', '데뷔방송', '인원', '나를', '이른', '있으니', '대충', '치는', '관심이', '힘든', '화질', '시작되', '능력', '오디션을', '있다고', '많아서', '성장', '애초', '따라', '지원', '불타오르기', '노래도', '넘는', '낙수를', '사람들이', '됐다고', '시원', '새달콤', '오늘도', '부들', '유치원', '매니저', '짓궂은', '바꾸', '보이는', '가진', '사람은', '무렵', '그걸', '돈은', '경력', '다섯', '싱숭', '내용', '제가', '어렵게', '괜찮으', '오디션이', '숫자', '외의', '물론이고', '적어도', '결코', '달하는', '켜서', '한다고', '끌어', '닉네임이', '싸요', '가득한', '추기', '느끼는', '해도', '고백하', '나쁜', '만들어', '공간의', '내놔도', '직접', '무엇보다', '적당한', '초장', '때는', '떨리는', '타기', '왠지', '이리', '연말', '본인도', '진짜로', '얼마든지', '가보', '없고', '그래도', '눈이', '과감하게', '각인', '않고', '고로', '침묵', '흐지', '터줏', '없다고', '지금껏', '이때', '사람을', '작업', '눈동', '갖고', '내성이', '디테일한', '소개', '방송의', '없이', '크루가', '유입이', '아닌', '감정을', '대한', '여러', '드리', '사회', '많으', '미리', '할지도', '다양한', '고사', '이건', '악질', '것을', '그토록', '복장', '올린', '그것을', '아무런', '무시무', '있을지', '있다는', '이후', '슬슬', '받을', '모여들기', '오전', '오랜만에', '상대로', '신청', '끝나고', '쫄리기', '싸움이', '오늘이', '어느새', '후원을', '종료', '보내주', '늦은', '관련', '했던', '체급을', '적절한', '그것은', '명의', '시간을', '주최', '그만한', '일일지도', '나가', '등의', '자료를', '느낀', '명을', '여유가', '사전에', '한다는', '애써', '원래', '내는', '명실상', '나니', '자화', '피해', '없었고', '그건', '받고', '마치', '사용할', '소통', '하나가', '입고', '이상', '분을', '몰입', '감동', '분이', '퀄리티가', '이전', '기술', '끝나자마', '통한', '자기소개', '생각할', '단어가', '서비스를', '잠시', '환기', '선배', '있으면', '노래가', '자세', '노래의', '사람들의', '주위의', '가는', '있던', '봤던', '오히려', '이야기하', '방송적인', '소문이', '넘치는', '들고', '노래자', '무대를', '날카로운', '애청', '초창기', '묘한', '술렁이기', '도입', '없으니', '않은', '이유로', '다들', '괜히', '확인하', '어마무', '중요한', '것이라', '최적의', '추가하', '생긴', '있어서', '수많은', '갤러리', '그나마', '텃세를', '이들은', '부분을', '남는', '대성', '간단한', '젊은', '응원', '알아보', '오늘은', '떠는', '따지면', '있기에', '소유', '보는', '그들의', '휴식', '미친', '최종합격', '충분히', '진지한', '과투', '맛을', '하이라이트', '일들이', '소중하게', '지금까지', '뜨거운', '여기서', '승리', '생각하', '남짓한', '순간', '냉철한', '와서', '된다고', '기회주의', '고집을', '반응하는', '아이돌을', '화려한', '이어지는', '그로', '기억하', '보기', '이번에는', '일상', '매일', '그럼', '목소리가', '무대가', '겹치는', '중간', '쉬는', '먹을', '근데', '배신', '살펴보', '합격을', '뽑을', '했고', '의견을', '순식간에', '이만한', '낚시', '당장', '배가', '만큼', '일찍', '차이는', '연습', '과거', '팬덤이', '놓고', '일정이', '불만이', '욕망을', '좋아하는', '수익', '시작부터', '확실하게', '그거', '있었던', '후원메', '해당', '돌아다니는', '기간이', '취미', '못한', '들어가', '다니는', '아몰', '않아서', '짧은', '그러자', '여론이', '대상', '나오기', '무럭무럭', '탈락을', '늘어나기', '판에', '한동안', '폭소하기', '말씀하', '벌써부터', '사과', '했기에', '아무리', '등장해서', '기회를', '지켜보', '대학', '조별과', '집중', '뽑기', '위로', '끝난', '얼른', '것들은', '월드가', '약속된', '회의를', '돌아오', '포식', '쪽이', '방에', '옹기종기', '짧게', '우리는', '봐주', '위해', '상당', '강퇴', '팬덤을', '이미지를', '제외하고는', '욕심이', '최초의', '변수가', '변화가', '내게', '경우가', '저번', '시작한', '은근히', '부르', '평소보다', '주어진', '말이', '괜한', '경우에는', '부족한', '입장에서는', '않게', '비교적', '그러한', '그야말로', '콘서트', '분위기를', '마냥', '멍한', '잔여', '점점', '낯선', '모두를', '오프닝', '차리', '모습이', '후보', '등장하', '메인', '잡고', '것은', '인사', '인터뷰', '감성을', '해소', '강행', '결과를', '만한', '노출', '방법이', '영상이', '이왕이면', '일을', '이게', '하차', '연장', '그들이', '판을', '걸리는', '이탈', '저도', '일어나', '위한', '걸린', '옳다고', '방셀', '벌어지는', '구매', '의아하게', '부분은', '욕심을', '누군가가', '합류를', '준비를', '통해', '일개', '머리', '시간이', '미성년', '각자도', '모르는', '믿음이', '초보', '보니', '달이라는', '못하는', '걸기', '좁은', '그들을', '장기', '슬쩍', '높이기', '규칙적인', '계속해서', '우매한', '달리기', '정신병', '탑신병', '덕분에', '불구하고', '각자의', '크루의', '멤버들은', '것일지도', '번씩', '단순히', '본격적인', '준비한', '싸늘한', '여고', '자꾸', '듣는', '이름', '당첨', '날뛰기', '넘기', '곰곰이', '말했다', '부회장', '코인', '결혼', '애매', '사소한', '팀이', '거란', '최초이', '다툼이', '듯한', '그러면', '리더', '서로의', '정보를', '예로', '딱히', '목소리로', '가입', '것처럼', '갈등이', '되자마', '정해진', '없어서', '탄탄하게', '덧붙이', '넘어가', '돌아온', '프리카', '수혜', '수작을', '모습을', '탐방', '소중한', '연애를', '자격을', '자연스레', '효과를', '경계의', '활약하는', '최대한', '싫어하는', '댓글', '힘을', '아예', '방송은', '참교육', '편하게', '게임이', '대결미션', '정착', '판의', '끄고', '화면', '분들', '팬서비스', '끝을', '들어오자마', '가까운', '패배', '탑이', '은인', '상승', '초심', '거래하', '양해를', '진정', '당시', '충분한', '설득', '드는', '더불어', '문제는', '멸망전을', '방송부터', '많관', '없다는', '전까지', '때마다', '그것도', '때로는', '수정', '그래야', '재생', '세력을', '얻고', '가지', '제외한', '일로', '언감', '온갖', '달다', '교육', '서버가', '않으면', '주고', '언니', '퇴출', '시간만', '극대화', '돈이', '화제성을', '판은', '못하고', '탈퇴', '명이', '숙련', '않다고', '준비하', '되면', '조심하', '유튜브', '요즘', '최소화', '조건을', '손을', '경악', '잠을', '조선', '진지하게', '전에', '수입이', '있다면', '서버는', '발표', '바쁜', '않아도', '한데', '무요', '그저', '나오면', '싸우', '되는지', '가슴이', '성사', '내의', '강조해도', '의외의', '만나', '빨간약을', '의미를', '정말로', '보여주는', '자리가', '보던', '유입된', '끌고', '호기심이', '초기', '뷰어십', '전을', '입주', '시절', '수장', '모집', '나머지', '탓에', '세상이', '권력', '일은', '됐는지', '보면', '월드를', '대화의', '미래를', '차가운', '열어주', '오래전', '있고', '등이', '소규', '후발주', '입성', '회복', '그러니', '안정적인', '평청', '팬들이', '수입적인', '게임을', '재화를', '느껴질지도', '사용하는', '접속', '외에도', '운영', '제작', '올리', '입모', '규모를', '박수', '하기', '방송하는', '흥분', '키자마', '경례', '웃음을', '누르', '해설', '쓰는', '벌어지기', '방심', '개를', '레드', '칼날', '밴픽', '노방종', '인턴', '채울', '오늘을', '있어도', '안절', '파밍', '있는지', '겨우', '이걸', '마법', '쌓이기', '하여간', '고르', '증가', '차이가', '시점', '나서', '노력하는', '조력', '그대로', '다이아를', '광질을', '잔뜩', '마주치', '방해', '문제라도', '볼을', '막상', '멘탈', '나름', '봐도', '대부분', '무법', '별명이', '필두로', '알려지', '아이템을', '수면', '아는', '고객', '노동', '인식이', '주입', '나올지도', '모여서', '깨달은', '보자마', '길을', '나오자마', '멤버들이', '끝까지', '있었을지도', '하는지', '서버에', '건축을', '컨트롤이', '완성', '하루아침에', '호갱', '멋진', '재료', '서버의', '비교하면', '좋다고', '나랑', '떠들기', '살아남은', '롤드컵을', '이동', '어두운', '경우를', '하나의', '갑옷', '세상에', '추종', '오자마', '기대하는', '실망', '후배', '막대한', '오픈', '물어보', '것부터', '남성', '보여준', '때려', '다르게', '군데', '우리의', '우리가', '지금부터', '그리', '바라보는', '기습', '난동을', '마음을', '싶은', '자유', '원하는', '인맥을', '사실을', '포함', '정확히', '돌아갈', '몰려오기', '친절하게', '누구나', '못된', '광질부터', '싸움을', '않을', '지하', '노른', '반전', '체급이', '인연을', '하자고', '때부터', '무조건', '많았고', '여론조작을', '등을', '말할지도', '금지', '그럴', '전체', '들어서', '선물', '정규', '혼자서', '때도', '멤버들을', '보유', '진행일', '판이', '지지', '우승', '롤을', '듯하', '바닥', '범죄', '더욱', '정상화', '순순히', '매력적인', '나오는', '데이를', '향하는', '번의', '차오르는', '때까지', '일부러', '당당하게', '나간', '나와서', '희생', '여럿', '밖에', '경기가', '열광', '아까부터', '설명을', '방법을', '하나로', '본인이', '아쉬운', '모습은', '진심인', '조금만', '흘러나오기', '전부터', '영상을', '말도', '동시', '그쪽', '철저하게', '곳에', '흐름이', '현역', '귀한', '개인', '비해', '것들이', '어쨌든', '직원들', '감탄을', '넓은', '잡기', '폭주하기', '챙기', '시들', '스스로의', '빼고', '알리는', '진행하', '말씀드리', '뽑아보', '끌려서', '찾기', '정면승', '시상식', '많은지', '인한', '종일', '이것이', '수상', '내년', '지나', '올해', '평가하', '혹시나', '분위기가', '탄생', '최연장', '압도적인', '않겠다는', '않았던', '가리', '퇴역', '브이', '안내를', '가서', '폭발', '받아서', '같다는', '뭐가', '공격을', '보며', '올라온', '제외하면', '취침', '빡세게', '아직도', '자금을', '독재', '사업', '말로', '친구들이', '해봅', '달려보', '역사를', '확실한', '마음이', '뭐든', '성대', '삼행', '즐기는', '자업', '그녀의', '분명한', '오빠', '몰래', '소진', '무력화', '원거리', '향한', '붙어보', '고조', '되어서', '떠오르기', '계획이', '진행해보', '틈새', '뜻을', '동업', '매번', '분위기는', '크흠', '때의', '기회에', '특히', '한참', '예열', '준비해온', '증폭', '했다고', '후반', '올라오기', '못했던', '떨기', '중에', '자료들을', '일할', '일반적인', '어차피', '존재', '펀딩의', '수뇌', '펀딩을', '수중도', '최강', '지난', '단체', '배팅', '개고', '들어보', '위에', '다해보', '팬들의', '채널에', '지금의', '약간', '어마어마한', '최소한의', '순서대로', '기본', '재산을', '뭔지', '말을', '몇몇', '특정', '경매를', '불러', '고생', '등장할', '받아보', '굉장한', '이놈의', '채팅', '찾아보', '기선을', '탁한', '아직까지', '힘이', '힘내', '돈도', '건데', '흥행', '돌아가기', '모른다는', '올라오자마', '협력', '인기를', '경우도', '급하게', '긁어', '납득', '차량', '당하는', '해야', '팬들은', '팬들도', '이윽고', '받는', '나온', '필요하다고', '자리에', '깊은', '착한', '눈을', '얻은', '돌리는', '집합', '열리는', '일인', '반박', '보일지', '무기', '모두가', '활성화', '이득을', '이대로', '중요하다고', '포인트', '라는', '업로드', '것들을', '시작해서', '중계를', '하던', '놈이', '계셨', '서버를', '엄청난', '떨어지', '기자', '들어주', '전투를', '조용히', '어디서', '한다면', '자신감이', '비슷하게', '대결이', '말고', '견제를', '적중', '경기의', '결과는', '작동', '줄어들기', '훈련', '절대로', '하자마', '가볍게', '당분간은', '조금이라도', '번에', '않는', '경험이', '자원을', '내리', '외치는', '한껏', '대담한', '이모', '꽤나', '오기', '활약할', '엄청나게', '들자면', '도착하', '생활을', '어쨌거나', '새롭게', '미연', '구경을', '단숨에', '동일', '정보가', '이내', '티어', '영향력을', '역할을', '같은데', '훨씬', '각종', '치던', '그의', '포기하고', '인생', '입장하', '담당', '저희', '익숙한', '데뷔하', '꼽아보', '활동하는', '공개할', '굉장히', '받으', '남자', '걷기', '예선', '마감', '멋지게', '자급', '팀원들', '팬덤들', '범위', '안져', '높다고', '매장', '사람들도', '암살', '부분이', '미드', '커다란', '차오르기', '파악하', '최악의', '높고', '개발', '기다리', '시즌', '채로', '되고', '심하', '어울리는', '차례', '벌어질지', '특별히', '데이트', '알게', '건지', '팀을', '같아서', '생각보다', '마스크', '써서', '식사를', '저는', '치킨', '여유를', '시기를', '잠깐', '경기를', '기대를', '게임의', '팀은', '다음에는', '방송에', '이번에도', '맨날', '자신도', '치기', '스킬', '이니', '하나씩', '필요한', '관계', '결승전', '갖는', '즐거운', '애들이', '중요하게', '나면', '찾는', '고모', '가격을', '그렇기에', '사실이', '들기', '사는지', '증거', '알아서', '열까지', '준비가', '넉넉한', '오랫동안', '느긋하게', '공용', '먹어도', '강화', '마스터', '직업', '배달을', '생존', '생각해보', '만에', '됐고', '완벽한', '칭호를', '사냥터', '즐겨찾기', '조금씩', '그것이', '손목', '시간에', '케이크', '전직', '사망', '농부', '힘들게', '가능한', '강철', '비용을', '강력한', '그림을', '점검', '발견', '구간', '약속한', '하나를', '요리를', '획득', '뒤통수를', '감시', '베스트', '레이드', '얼음', '양측', '워낙', '풀리기', '차라리', '들려오기', '알다', '압도하기', '알려주', '받기', '최단', '이야기를', '화제를', '청소', '매달린', '원작', '활동을', '단일', '소녀', '주주', '도전을', '유리', '한국', '올지도', '깊게', '파티', '대회', '전국', '국제', '스탯', '개척', '너프', '진화', '놀이터', '히든', '안녕하', '성을', '이이', '저저', '그그', '아아', '으으', '크크', '흐흐', '히히', '헤헤', '호호', '하하', '허허', '후후', '휴휴', '캬캬', '키키', '푸하', '피식', '엉엉', '흑흑', '훌쩍', '꺼이', '통곡', '질질', '뻘뻘', '줄줄', '뚝뚝', '펑펑', '콸콸', '졸졸', '주륵', '주르', '비비', '쓱쓱', '싹싹', '반짝', '번쩍', '깜빡', '끄덕', '가웃', '기웃', '두리', '힐끔', '슬쩍', '살짝', '활짝', '방긋', '싱글', '벙글', '피식', '킥킥', '깔깔', '껄껄', '하하', '호호', '히히', '헤헤', '후후', '으으', '크크', '흐흐', '캬캬', '키키', '푸하', '엉엉', '흑흑', '훌쩍', '꺼이', '통곡', '질질', '뻘뻘', '줄줄', '뚝뚝', '펑펑', '콸콸', '졸졸', '주륵', '주르', '비비', '쓱쓱', '싹싹', '반짝', '번쩍', '깜빡', '끄덕', '가웃', '기웃', '두리', '힐끔', '슬쩍', '살짝', '활짝', '방긋', '싱글', '벙글', # Common Korean Particles and Endings (often attached to nouns) '은', '는', '이', '가', '을', '를', '에', '의', '와', '과', '도', '만', '로', '으로', '까지', '부터', '에게', '한테', '께', '에서', '로서', '로써', '같이', '처럼', '만큼', '보다', '마다', '조차', '마저', '커녕', '부터', '까지', '이나', '나', '이라도', '라도', '이나마', '나마', '이야말로', '야말로', '이라야', '라야', '고', '라고', '다고', '자고', '냐고', '라고', '이란', '란', '면', '으면', '니', '으니', '니까', '으니까', '는데', '은데', 'ㄴ데', '지만', '지만', '더라도', '아도', '어도', '여도', '게', '도록', '고', '며', '면서', '으며', '으면서', '자', '자마자', '다가', '길래', '기에', '므로', '음으로', '느라고', '더니', '았더니', '었더니', '다니', '라니', '냐니', '자니', '게', '지', '고', '기', '음', 'ㅁ', '기', '이', '개', '대', '장', '명', '분', '마리', '권', '자루', '송이', '병', '잔', '그릇', '접시', '통', '바구니', '상자', '봉지', '켤레', '쌍', '벌', '채', '동', '층', '호', '세', '살', '년', '월', '일', '시', '분', '초', '원', '달러', '엔', '유로', '퍼센트', '점', '배', '번', '회', '차', '등급', '급', '단계', '위', '등', '개국' }