CN101556574A - 基于用户意愿的计算机智能起名 - Google Patents

基于用户意愿的计算机智能起名 Download PDF

Info

Publication number
CN101556574A
CN101556574A CNA2008101035888A CN200810103588A CN101556574A CN 101556574 A CN101556574 A CN 101556574A CN A2008101035888 A CNA2008101035888 A CN A2008101035888A CN 200810103588 A CN200810103588 A CN 200810103588A CN 101556574 A CN101556574 A CN 101556574A
Authority
CN
China
Prior art keywords
name
word
giving
user
lattice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008101035888A
Other languages
English (en)
Inventor
石淼
陈议
黄际洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING MEIMINGTENG NETWORK TECHNOLOGIES Co Ltd
Original Assignee
BEIJING MEIMINGTENG NETWORK TECHNOLOGIES Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING MEIMINGTENG NETWORK TECHNOLOGIES Co Ltd filed Critical BEIJING MEIMINGTENG NETWORK TECHNOLOGIES Co Ltd
Priority to CNA2008101035888A priority Critical patent/CN101556574A/zh
Publication of CN101556574A publication Critical patent/CN101556574A/zh
Pending legal-status Critical Current

Links

Images

Abstract

一种基于用户意愿的计算机智能起名的系统和方法。该方法的步骤包括接受用户提交的起名基本信息和起名意愿;分析理解用户起名意愿,根据用户需要兼顾传统的属相、五行、五格,以得到起名候选用字;根据选取的起名候选用字相互搭配以产生候选名字列表并根据用户意愿和一套基于大规模人名库自动学习的名字评价体系,以及属相、五行、五格为其打分排序;用户利用系统提供的交互手段,补充或者细化起名意愿,系统动态生成新的名字候选;结合多种信息对所起的名字提供解释。

Description

基于用户意愿的计算机智能起名
技术领域
本发明涉及中国传统文化领域中的起名研究以及结合计算机及网络应用的基于用户意愿的智能起名领域。
背景技术
每个人都有名字,名字中寄托了父母对孩子无尽的期望、祝福。为了给孩子起个好名字,父母总是绞尽脑汁,从成千上万个汉字中选取一个或者两个最能体现父母意愿的汉字来作为孩子的名字。通常父母的意愿很多,可用的起名汉字也很多,光是GB2312字符集中就包含6,763个,GBK字符集中更是包含了20,902个汉字。为了能起出满意的好名字,父母们往往花费大量的时间和精力从字典或词典中选取那些既有美好意义,美好读音,同时又能体现他们意愿的起名用字。即便如此,因为受到一个人知识文化水平和生活阅历的限制,一般人很难凭人力去把所有的字典,词典以及古代的诗词、歌赋、成语、典故都翻阅一遍。往往人们只能望书兴叹,或求助于起名专家。
随着网络信息技术和计算机的飞速发展,使用计算机提供的强大功能,快速查阅字典、词典、古代典籍变得非常容易。同时网络使得交互式获取用户意愿信息并给用户提供超越空间的服务变得更加容易。本发明把计算机人工智能和语言学的交叉学科--自然语言处理的技术应用到起人名系统中,从而实现了一个基于用户意愿的智能起名系统。
本发明提供一种方法,结合信息检索和自然语言处理的相关技术,分析和理解用户意愿,帮助用户轻松的从上万个起名用字和海量的信息中选取最适合的字来体现其意愿,并根据选取的起名用字相互搭配以产生多个候选名字,再使用一套自动学习的名字评价体系给候选名字打分排序。同时,提供一套简洁、方便的交互方式,以便于用户快速得到其满意的名字;最后对所起的名字提供解释,说明起名的思路。
发明内容
本发明的目的是这样实现的:
首先,由用户界面的信息输入系统来收集用户起名信息和起名意愿,其中包括:姓氏、性别、名的形式(单字名、双字名、叠字名)、出生日期和时间、出生地点、美好祝愿、职业期望、性格期望、父母姓名,以及指定的人名用字的音、形、义等信息。
然后,根据用户提供的起名信息做如下几个方面的分析:
查询姓氏起源,造字原理,以得到姓氏相关的起名候选用字;
分析出生日期时间所在的季节、节气、节日、名人诞辰、出生具体所在月份、时刻的别称等,以得到出生日期时间相关的起名候选用字;
查询出生地点的历史文化、风土人文,以得到出生地点相关的起名候选用字;
分析父母名字,以得到父母名字相关的起名候选用字;
分析美好祝愿,提取关键词,并作相应的扩展和延伸,以得到美好祝愿相关的起名候选用字;
分析职业期望和性格期望,以得到职业和性格相关的起名候选用字;
分析草稿名字(用户输入的名字),以得到草稿名字相关的起名候选用字;
查询相关的诗词、歌赋、成语、典故等,以得到诗词、歌赋、成语、典故相关的起名候选用字;
将用户的起名信息向量映射到某个预定义的意愿类别上去,用预定义的类别特征向量扩展用户意愿,以得到意愿类别相关的起名候选用字;
分析传统的属相、五行、五格特征,以得到满足属相、五行、五格起名要求的起名候选用字;
通过上述分析,从中得出各个起名候选用字出现的规律,并结合从一个包含上亿真实人名数据库中统计出的人名用字规律,综合挑选出最好的N个起名候选用字。选出的N个候选用字是最能体现用户意愿的,同时由于这些字也是经常用在人名中,可以保证其都具有美好的意义。
再次,根据一定的规则,用选出来的N个起名候选用字组合搭配生成候选名字。利用一套从大规模人名中学习的名字评价体系并结合传统的属相、五行、五格对候选名字进行评价、排序输出,以得到满足用户意愿,好听且有美好意义的名字。
同时,提供一种简洁、方便的交互方式,用户可以对起好的名字进行交互搜索、做各种变换、再排序,以得到其满意的名字。
最后,对所起的名字提供解释,说明起名的思路。包括名字的意义、趣解、相关成语、诗词及传统的属相、五行、五格相关的解释等。
附图说明
通过结合附图对发明进行如下详细描述。在附图中:
图1展示了客户机-服务器网络环境;
图2展示了系统的处理流程;
图3展示了起名常用指定信息的数据结构;
图4展示了系统使用的职业类别列表;
图5展示了用户意愿类别列表;
图6A为生成单字名示意图;
图6B为生成叠字名示意图;
图6C为生成双字名示意图。
在所有附图中,相同的标号自始自终都表示相同的部件。
具体实施方式
图1展示了可以实现本发明的典型客户机-服务器网络环境概貌。多个客户机006通过网络005,例如因特网,与计算机起名系统001连接。起名系统001由Web服务器004、应用程序服务器002和数据库服务器003构成。Web服务器004负责接收和响应客户机006的起名请求,Web服务器004把接收到的请求做适当的处理后转交给应用程序服务器002处理。应用程序服务器002上实现了的起名核心业务逻辑,数据库服务器003上存储了应用程序服务器002所需的资源和数据。应用程序服务器002处理完起名请求后,将结果返回给Web服务器004,最后经由Web服务器004把结果响应给用户。起名核心业务逻辑将在下面作更详细的描述。
图2详细展示了系统处理流程。从图示可知,本发明主要包含五大部分,它们是:
I、接受用户提交的起名基本信息和起名意愿;
II、分析理解用户起名意愿,根据用户需要兼顾传统的属相、五行、五格,以得到起名候选用字;
III、生成候选名字列表并根据用户意愿,以及属相、五行、五格为其打分排序;
IV、用户利用系统提供的交互手段,补充或者细化起名意愿,系统动态更新生成新的名字候选;
V、对所起的名字提供解释,说明起名的思路。
图2中资源库包含了本发明用到的各种资源,其中的各个资源的用途以及获取方式将在后面的叙述中做详细的阐述。下面详细讨论本发明的具体实施方式。
意愿起名的重点之一在于充分理解用户的起名意愿。因为只有真正理解了用户的起名意愿(也就是需求),才能起出令用户满意的名字。分析发现,用户通常会从如下几个方面表述他们的意愿:1)孩子先天带来的基本信息,如详细的出生年月日时分、出生地点、孩子的姓氏、性别、父母的姓名(或姓氏);2)父母对孩子的美好祝愿,如“很健康很可爱;聪明睿智,美丽清新”等;3)对名字形式的具体要求,如“名字要两个字的”、“第二个字为‘祖’”等;4)起名用字要求,主要是对名字用字的音、形、义上的要求,如:“第二个字为‘祖’”,“第一字表示‘美丽’”等;5)一些比较笼统的需求,如“字不要太生僻,要有一定意义”、“名字不要太俗”等。当然,并不是所有的用户都会指定上面所说的四个方面的信息,有的要求少,有的要求多一些。
为了能做到真正理解用户的起名意愿,首先,本发明随机选取了大量的真实起名需求,从中分析出用户在起名的时候想要表述的一些信息,然后进行一定的总结、归类,使得本发明能够以最简单的、用户最容易理解和使用的方式收集用户全方位的信息,从而有效的引导用户表述他们真实的需求。图3展示了本发明使用的收集用户起名信息的数据结构,由三大部分构成:基本信息、美好祝愿、高级选项。其中基本信息为必填项,美好祝愿和高级选项为选填内容。收集到用户起名需求后,就可以通过各种方法深入分析用户的起名意愿,在图2中对应于103-111处理模块。在真正理解了用户的意愿以后,就可以从中选取那些最能体现用户意愿的字作为起名候选用字,模块120和122从中选取Top-N候选起名用字。下面将详细阐述分析用户意愿的方法。
姓氏是父母给予孩子的先天信息,是祖祖辈辈一代代传下来的,是不能改变的。姓氏中蕴含了丰富的历史、文化信息。巧妙分析和使用姓氏所包含的信息往往能达到出其不意的效果。本发明主要从两个方面分析给定的姓氏(模块103):其一,从姓氏本身入手,使用姓氏本身具有的含义,以及根据姓氏用字的造字原理把字进行合理的拆分,以得到更多的信息;其二,分析姓氏起源,源流以及家族中有名的人物、事件,把这些信息进行精化,提纯。很多姓氏可以分解成两个字,比如“张”,可以分解成“长弓”两个字,“王”,可以分解为“一土”等。利用这些拆字信息,本身就可以直接用来起名,比如姓“张”,就可以起名为“张长弓”或者只用一个字,起名为“张长江”。很多姓氏,比如“牛”、“马”,是一种动物,以吃草为生,草和它们息息相关,起名的时候也可以巧妙利用这些信息,如可以起名为“牛得草”,“马知草”等名字。现代我们中国人的姓,大部分是从几千年前代代相传下来的。姓氏是代表每个人及其家族的一种符号。从它的形成、发展、演变的漫长历史过程来看,它是构成中华民族文化的一个重要内容。因此,还需要深入发掘姓氏包含的历史、文化和家族信息。为了得到这些信息,本发明为中国的常见的姓氏构建了姓氏信息表,其中包含姓氏用字含义、姓氏用字拆分信息(把一个汉字拆分为两个组成部分,各个组成部分独立成字)、姓氏起源、姓氏源流、家族中有名的人物、事件。通过查询姓氏相关的信息,就可以得到一系列姓氏相关的起名候选用字。
孩子的出生时间里也蕴含着大量丰富的信息,这些信息也是先天带来的,经常被用于人名。比如,孩子姓陈,出生在天亮的时候,可以起名为“陈天亮”。又比如,孩子出生在夏天,由夏天可以联想到夏天的雨,故可以起名为“陈夏雨”。因此,巧妙推敲和使用这些时间相关的信息是起名字的关键。另外一个重要的原因是,很多父母在表述起名需求的时候,往往只表述孩子的姓氏和出生的时间,在这种信息很少的情况下,充分发掘包含在出生时间中的信息就显得更为重要。本发明从如下几个方面对孩子的出生时间做深入分析:
A.孩子出生所在“年”特征,主要包括:生肖(如鼠),中国传统干支纪年(如戊子),闰年信息,当前国家重大喜庆的事件(如2008年为奥运年)等;
B.孩子出生所在“月”特征,主要包括:月份古代的别称(如一月称为正月,二月称为仲春。注:这种别称一般对应于农历纪年,因此要把孩子的生日转换为对应的农历。),闰月信息,季节(如2月为春季,8月为夏季)等;
C.孩子出生所在“日”特征,主要包括:节日(阳历的节日,如“五一”劳动节;农历的节日,如春节,中秋节等),节气(如立春、雨水等),名人(伟人)诞辰日(如毛泽东诞辰日,周恩来诞辰日等),历史上的今天(主要包括一些重大的、有积极意义的事件,如“五四”青年节等);
D.孩子出生所在的“时刻”特征,主要包括:古代时辰计时法(如子时,寅时等),出生时刻在一天所处的时段(如早上6点-8点左右称为“早晨”,下午17点-18点左右称为“傍晚”等)。
上面提到的信息可以查询日期时间信息表得知,日期时间信息表包含日期以及对应的季节、节日、名人诞辰、重大历史事件,还包含月份、时刻的别称。同时,除了挖掘这些直观的信息以外,还应该进一步扩展和引申各个子项所包含的深层次含义。举个例子,我们知道了还在出生在春季,那么和春季相关的、人们很容易联想的事物有如下这些:百花盛开、春雷、春雨、春耕、春笋、阳光和煦等;如果知道孩子出生在中秋节,还应该扩展和引申出:圆月、团圆、佳节、仲秋、赏月、月饼等。这些信息都可以用来作为起名的候选信息,不但扩充了信息,更是增加了名字的内涵和底蕴。因此,用户在告诉我们孩子出生日期的时候,就等于告诉了我们如此多的重要信息,当然这些信息是隐藏在生日里面的,需要深入分析和发掘。为了得到这些信息,需要事先收集和准备如下信息:同义词扩展词表、联想词扩展词表。到此,把所有日期时间相关的信息合并在一起,就可以得到一系列的出生日期时间相关的起名候选用字。
这里需要介绍一下同义词词表和联想词词表。同义词词表用于扩充信息,使得信息更饱满和全面,同义词词表中包含如下信息,词和对应的同义词集合,如给定“漂亮”,其同义词有“俊美 俊俏 俊秀 隽秀 美观 美丽 优美 俏丽”等;给定“聪明”,其同义词有“聪慧 聪敏 聪颖 机巧 矫捷 精明 伶俐”等。那么为什么要做同义扩展呢?用户在给定希望孩子“聪明,漂亮”的时候,其实也就隐含的包含了“聪明,漂亮”对应的同义词,因为用户一般不会把相同的信息重复叙述,需要系统自动去挖掘。在给定了“中秋节”这个信息以后,本发明是怎么知道可以引申出“圆月、团圆、佳节、仲秋、赏月、月饼”呢?这里就用到了联想词表。联想词表中包含了和给定词条强相关的词汇和概念,即人们最容易联想到的相关词语和概念。联想词表的使用,极大的拓展了起名信息和思路,便于深层次理解用户起名意愿。同义词词表是从一个大的同义词表中经过人工精选、适合用来起名的那部分同义词组成的集合。联想词表是使用机器学习的方法从一个大规模的语料库中学习出来的,然后经过人工筛选,保留那些适合用来起人名的部分。联想词表的大致学习方法如下:给定一个词条,到网上去搜索和给定词条强相关的P篇文档回来,经过一定的预处理以后,然后从返回的P篇文档中统计和给定词条高频共现的词条,用共现的频度从大到小排序,保留排在前面的作为候选,最后经过人工筛选形成最终的联想词词表。除了本模块外,同义词词表和联想词词表还将被用在本发明的其他很多地方。
人们经常有根据孩子出生地点命名的习惯,如孩子出生在北京香山,就可以起名为“陈香山”,这种起名法往往体现了父母对孩子出生地的热爱,希望孩子记住自己的出生地。因此,需要对出生地点做深入的分析。地名,只是一个地方的名字而已,看起来很简单,但却蕴含着丰富的历史、人文、和父母的情感等信息。为了充分发掘孩子出生所在地的特征,本发明主要从以下几个方面进行分析:1)研究出生地历史变迁,地点在历史的长河中曾经使用过的名字,曾经发生过的重大历史事件等。比如,提到西安,人们自然会联想到“古城、古都、秦朝、汉朝、唐朝、长安、汉唐盛世”等;提到北京,人们会联想到“古城、古都、燕京、京都、明朝、清朝、首都、直辖市”等;2)分析出生所在地的风土人文、名胜古迹。比如,提到重庆,人们一般会想到“雾都、山城、火辣、长江、嘉陵江、歌乐山、红岩魂”等。为了得到这些信息,本发明针对中国县及其以上的地名构建了一个地点信息表,其中包含地点以及对应的在历史变迁中曾经使用过的名字,曾经发生过的重大历史事件,所在地的风土人文,名胜古迹。通过上述方法,就可以得到所有出生地点相关的信息,也就得到了出生地点相关的起名候选用字。
图2中模块106分析父母姓名信息。孩子是父母心中的宝,父母都希望孩子名字中能体现出自己的特征。最明显、也是最容易想到的就是把父亲的姓氏和母亲的姓氏直接合并构成孩子的名字。如父亲姓“陈”、母亲姓“施”,孩子可以起名为“陈施宇”。除此之外,本发明还分析和利用了如下信息:父母姓名的读音、偏旁部首、笔画、以及父母名字用字的含义。为了知道一个字的音、形、义信息,本发明为常用起名汉字(GBK字符集,目前包含20,902个汉字)构建了字的基本信息表。字的基本信息表中主要包含如下信息:汉字、拼音、
体字、简体笔画、体笔画、姓名学笔画、偏旁部首、字的结构、字的部件、字的五行属性、字义、字的同义字、字的同义词、字在人名库中出现的次数。有了这些信息,就可以到了父母名字相关的起名候选用字,做法是:读音上做同音字扩展,或者采用父(母)亲用字的声母同母(父)亲用字的韵母进行组合,通过新获得的拼音获取名字用字;字型上做相同偏旁部首扩展,或者采用父(母)亲用字的部首同母(父)亲用字的偏旁进行组合,来获得名字用字;字义上取相同字义的字做扩展,以得到父母名字相关的起名候选用字。
孩子是父母爱的结晶,倾注了父母所有的爱。每个父母都对孩子倾注了所有的美好祝愿,从这些美好祝愿中能更好的得知父母的意愿。如下是上面提到的两则真实的父母对孩子的祝愿,“很健康很可爱”、“明睿智,美丽清新”,名字中应尽量体现这些信息。美好祝愿里面可能包含如下信息:表达父母对孩子的祝愿、期望,或者表征孩子出生的季节、出生地风景、气候的特征词汇。在父母的美好祝愿里面,并不是所有的信息都很重要,需要从用户输入的众多信息中提取最能体现用户意愿的关键词汇。看下面这则用户输入的祝愿,“我的宝宝非常聪明可爱,我希望他能健康快乐的长大,将来找一份好工作,挣钱多”,这里面的关键词其实就是“聪明可爱、健康快乐、有钱”。本发明使用如下的方法从用户的美好祝愿中提取关键词。首先,对输入的信息做分词处理。作为一种实现方式,这里以最简单的最大正向匹配法分词为例说明分词的过程:将待分析的汉字串与一个机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;然后,将切分出来的词条和一个好词列表进行匹配,保留那些出现在好词列表中的词作为关键词。这是因为,切分出来的词条并不是所有的都适合用来起名,能用来起名的一般都是一些常见的好词,具有积极正面的意义。最后,还要对抽取出来的关键词做同义和联想扩展,以扩展和引申用户的意愿。因为用户不可能也没有必要把他们所有的想法都写出来,用户提供的信息起到抛砖引玉的作用,系统应该自动做各种扩展。上面提到的分词用的机器词典是从大规模的语料中统计出来的出现频度高于一个指定阈值的词条。上面提到的好词列表,是从一个大的词表中人手工精选出来的适合用于起名的词汇集合。利用上面的方法,就可以得到美好祝愿相关的起名候选用字集合。
通常,父母还会指定对孩子的职业和性格期望。所谓职业期望,就是父母希望孩子将来长大后所从事的职业。不同的职业,寄托了父母对孩子不同的要求,如“科学家”,就蕴含了“创新 实践 探索 诚实 毅力 谦虚 实事求是 真实客观 贡献 观察敏锐 聪明理智”等优秀特质,可以起名为“王创新”等名字;如“政治家”,就蕴含了“高瞻远瞩 雄材伟略 为人民服务 公仆 团结协作 谦和 开阔胸襟 勤奋敬业 清正廉洁”等优秀品质,可以起名为“李公仆”等名字。父母一旦指定了相应的职业后,本发明就会自动为用户联想和扩充其相应的优秀特质。本系统当前包含了18个职业类别(参考图4),分别为每个类别都建立了相应的优秀特质,构成职业特征表,此表可以根据需要做扩展。同样地,本发明还将对指定的性格期望做适当的扩展和扩充。为此,本发明为各个常见的性格建立了性格特征表,其中包含性格以及对应的特征词汇列表。利用此方法,就可以得到职业期望和性格期望相关起名候选用字。
一般情况下,父母在自己的心里面都有几个意向性的名字,可能不是很成熟,或者不是很完美,但却包含了父母的意愿,本发明称之为草稿名字。通过分析这些草稿名字,可以得到父母的用字喜好,名字的风格,以及父母想要表达的意愿。经过深入的分析之后,结合父母指定的其他起名信息,在草稿名的基础上做适当的音形义方面的变换,往往就能得到满意的名字。举个例子,父母指定了一个草稿名为“陈  凯”,其中“  ”有美、道之意,“凯”有凯旋、胜利之意。对此名做音形义方面的分析扩展后,就可以起出“陈得凯”,“陈美胜”,“陈美旋”等名字。这里提到的音形义方面的扩展,主要是指:读音上,做完全同音和相近读音扩展,如“  ”同音扩展后有“得、的、蝶”等字,“凯”同音扩展后有“开、恺、楷、慨”等字;字型方面,主要从笔画和偏旁部首入手,分析具有相同笔画和偏旁部首的字,如和“凯”具有相同偏旁部首的字有“凤、凡、凰”等;字义上,主要做同义和近义扩展,如“凯”可以扩展出“胜、捷”等字。关于字的音形义基本信息通过查询上面提到的字的基本信息表得知。通过此方法,就可以得到草稿名相关的起名候选用字。
中华文化博大精深,源远流长,要起出有文化内涵的名字,还必须借鉴中华文化中最精华的东西,那就是诗词、歌赋、成语、典故。现在的很多父母在起名的时候,越来越重视这方面的需求,很多父母在起名的时候就干脆翻阅诗词、典籍,力图起出有文化底蕴的名字。中华文化上下五千年,其中之精品何止千百句,光是古代诗词就有几十万之多,所以不可能通过人力把所有的诗词、典籍都查阅一遍。但计算机以其强大的计算能力却能胜任这样的工作。首先,本发明收集了从中国古代一直到近现代所有有名的诗词、歌赋、成语、典故,利用计算机信息检索系统的方法,对收集来的资源做分词、倒排、索引;然后,利用用户输入的姓氏、出生时间、出生地点、美好祝愿等起名信息作为查询条件,从建好索引的数据库中快速查询相关的诗词、歌赋、成语、典故;最后,从返回的相关的诗词、歌赋、成语、典故中进行分析、统计,从中选取出现频度高于一个指定阈值的短语、句子以产生起名候选用字。从选取出来的短语、句子中就可以得到诗词、歌赋、成语、典故相关的起名候选用字。
把上述分析得来的所有信息合并在一起就构成了用户的起名意愿特征向量。通过分析发现,不同用户,根据喜好不同所得到的特征向量是不尽相同的,但也有一些共同的规律。比如一部分用户喜欢大气磅礴型的名字,例如“泽东”、“得昌”、“思危”等,而有的用户则喜欢温情娴淑型的名字,例如“如梦”、“诗雨”、“如春”等。很容易看出,不同的类型,常用的起名用字也不尽相同。基于此,本发明首先分析了大量真实起名需求和已有人名,然后将用户的起名意愿大致划分为6个大类(参考图5),并分别为每个类别构建相应的特征向量。特征向量主要包括能用在此类中起名的常用字、词等信息。为了充分挖掘和扩展用户起名意愿,本系统将用户输入的起名意愿特征向量和各个预定义的类别特征向量进行比对,看看用户意愿是否和已有的意愿类别很相似,如果是,则会在用户意愿中加入系统预定义的该类的特征向量,以扩充用户意愿。本发明采用计算机信息检索系统中的向量空间模型和常用的TF*IDF加权算法来衡量两个向量的相似度(TF指某个词出现的频度,即词频;IDF指逆向文档频,计算方法为IDF=log(N/DF),其中DF为包含某个词的文档数量,N为所有文档的数量,log(x)为对数函数),给定用户意愿特征向量IV和类别特征向量CV,向量中字(词)的权重可以由如下公式给出:
weight = TF * IDF = TF * Log N DF - - - F 1
那么,向量IV和CV之间的相似度可以用余玄相似度给出:
Similarity ( IV , CV ) = Cos ( IV , CV ) = IV · CV | | IV | | | | CV | | - - - F 2
其中“·”代表向量之间的“点乘”,||x||代表向量的长度。公式F1中IDF从一个大的语料库中进行估计给出。
使用上述公式依次计算用户意愿特征向量和各个类别特征向量的相似度,并按相似度从大到小排序,取相似度最大的那个类别来扩展用户意愿特征向量。
古人在起名的时候,往往还会兼顾一些传统命理学的东西,比如属相、五行、五格数理等。尽管很多现代人已经不再关注这方面的东西,但分析发现,还是有相当一部分用户在起名的时候明确要求兼顾传统命理学起名。基于此,根据用户的起名需求,本发明在起名的时候充分兼顾到传统的属相、五行和五格数理起名的要求。根据出生日期就可以知道对应的属相,在知道属相以后,直接查询一个属相映射表即可知道哪些偏旁部首的字是适合该属相的,哪些偏旁部首的字不适合该属相,也就得到了属相相关的起名候选用字。属相映射表中包含了传统的十二属相和对应的适合的以及不适合的偏旁部首列表。根据万年历,计算出生日对应的四柱表示,即年、月、日、时柱,每柱一个天干一个地支,共八个字,故又称为“八字”。排出八字以后,将天干和地支分别映射到五行上去,就可以根据五行相生相克的原理分析出五行的缺旺。通过分析,就能知道哪些五行是允许的,哪些五行是应该避免的。最后,就可以在起名的时候在名字用字上对五行进行相应的弥补。这些能弥补五行不足的用字就构成了五行相关的起名候选用字。前面提到,在字的基本信息表中,包含了各个字的五行属性,通过查询此表就可以获取相应的五行用字。所谓五格,即:天,地,人,外,总五格。人格与其他组合,又可以得到所谓的:三才,成功运,基础运,人际关系。因此,五格数理就包含了以上的九个方面,各个方面所侧重的意义并不相同,所以,所占的权重也各不相同。三才最为重要,其次是,地格,人格和总格,最后才是:外格,基础运,成功运,人际关系。
五格的数值,完全取决于字的笔画数组合,因此,要想取出来的名字符合五格数理的要求,就应该计算出最佳的笔画数组合。如何衡量某个五格数理值的好与坏呢?这里要用到几个映射表,比如81数理映射表,三才映射表,成功运,基础运,人际关系映射表。在各个映射表中,数理被分为4个等级,依次为:‘凶’,‘半吉’,‘吉’,‘大吉’。这里本发明把这四个等级映射为一个离散的分数值数列,即:凶(-1.0),半吉(0.5),吉(1.0),大吉(1.5)。因此,在知道了五格以上九个方面的各自所在的等级后,就可以用一个经验性的公式为一个给定的名字打分:
WuGeScore=2*三才+1.5*(地格+人格+总格)+(外格+基础+成功+人际)
为了将其表示为0-100之间的数值,本发明进行如下归一化处理:
首先,计算MaxScore=2*1.5+1.5*(1.5+1.5+1.5)+(1.5+1.5+1.5+1.5)=15.75;
然后,计算MinScore=2*-1+1.5*(-1-1-1)+(-1-1-1-1)=-10.5;
最后,WuGeFinalScore=((WuGeScore-MinScore)/(MaxScore-MinScore))*100。
由于名字的结构相对比较固定,本发明目前只考虑四种结构:单姓单名,单姓双名,双姓单名,双姓双名。同时,汉字的笔画介于1-30画之间,因此,可以穷举出各种名字结构的最佳笔画数存储在数据库中。给定姓氏,就可以根据姓氏的结构和笔画从数据库中查询对应的笔画组合,根据笔画组合就可以得到笔画所对应的字,这些字就构成了五格相关的起名候选用字。这里的笔画为姓名学笔画,可以从字的基本信息表中获取某个字的姓名学笔画。
到此为止,本发明已经深入分析了如下几个大方面的信息:其一,孩子先天带来的信息,有姓氏、性别、出生时间,地点等;其二,后天父母指定的信息,有美好祝愿、职业,性格期望、草稿名等;其三,中国传统文化中相关的部分,有诗词、歌赋、成语、典故,以及传统起名相关的属相、五行、五格等。这三大方面的信息合在一起,就构成了父母起名的三维立体信息。要做到真正理解用户起名意愿,起出让他们满意的名字,这才完成了第一步。在如此多的信息中,怎样才能知道哪些信息是最重要的,哪些信息是用户最想要的呢?信息很多,而名字的长度一般只有两三个字,在这两三个字中要能尽量多的体现用户意愿,这样的名字是用户希望得到的。因此,需要从模块103到模块111分析的结果中进行分析统计,看哪些字能更多的体现用户意愿。统计以字为单位,模块120统计字出现的规律。理论上讲,某个字在这些信息中出现的频率越高,说明这个字越能体现用户的意愿。更一般地,本发明用某个字在所有信息中出现的概率的高低来衡量其重要程度。注意,为了在后面的处理中知道某个字包含在哪些信息中,需要为每个字记录其出处。
接下来将介绍如何从众多起名候选用字中挑选出最能表现用户意愿的起名用字。
定义:字的意愿得分(标记为ImageScore)为字在所有起名候选用字中出现的次数除以所有字总共出现的次数,即字出现在所有起名候选用字中的概率。出现的频度(标记为Count(t))除以所有字总共出现的次数(标记为Count(*)):
ImageScore ( t ) = Count ( t ) Count ( * ) - - - F 3
前面提到,人名中包含了大量人类智慧,通过分析已有人名可以知道字在人名中使用的规律,以及名字中字与字之间的搭配关系。在实际的用户起名需求中也经常提到这样的需求“名字不能太生僻”、“名字用字要有好的意义”等。事实上,能经常用于人名的字一般都不会太生僻,也都有较好的意义。为此,本发明建立了一个大规模的人名样本库,即“人名库”,收集了上亿个真实人名用于学习起名用字规律。本系统中,定义某个字在人名库中出现的概率(标记为Unigram)为:
Unigram ( t ) = Count ( t ) Count ( * ) - - - F 4
其中Count(t)表示某个字t在整个人名库中出现的次数(注意,只统计出现在名中的次数,出现在姓氏中不计算在内),Count(*)表示整个人名库中所有字出现的总次数。
对于双字名来说,某个字用在名的第一个(标记为Slot1)和第二个(标记为Slot2)位置的概率是不一样的。定义:在人名库中,如果某个字一共出现了Count(t)次,其中,其中出现在位置Slotn上为Count(t,slotn)次,则字的位置得分CharSlotScore为:
CharSlotScore ( slotn | t ) = Count ( t , slotn ) Count ( t ) - - - F 5
在综合考虑了字的意向得分和人名库中的得分后,就可以得到任意给定字的综合意向得分(标记为ImageScore’)为:
ImageScore′(t)=α*ImageScore(t)+(1-α)*Unigram(t)
                                                       F6
                                         (0<α<1)
可以通过调节α值的大小来调节打分公式更偏向于意向还是更偏向于人名库中的用字规律。本发明中α根据经验,在观察大量名字的基础上手动调节给出。
在起双字名的时候,同一个字用在第一个字位置和第二个字位置的概率是不一样的。下面将介绍如何结合前面几个得分来选择对应位置上的起名候选用字的。假如要为位置slotn选择起名候选用字,则可以通过如下打分公式先为每个候选字t打分,然后按得分的高低进行排序,选取排在前面的Top-N个字即可。
P ( t | slotn ) = P ( t ) P ( slotn | t ) P ( slotn ) ∝ P ( t ) P ( slotn | t ) - - - F 7
其中P(t)就是公式F4中的ImageScore’(t),P(slotn|t)就是公式F3中的CharSlotScore(slotn|t)。值得注意的是,由于男孩和女孩在起名的时候用字规律是不一样的,所以在人名库中标注出了人名的性别信息。以便系统在学习人名用字规律的时候可以分开学习,即男孩名和女孩名分别学习出各自的打分模型。起名的时候,根据当前用户指定的性别,选择对应的打分模型即可。
下面的内容将着重讨论如何用选出的Top-N候选用字产生名字,以及如何评价产生名字的好坏。
图2中模块124用于产生候选名字。如果是起单字名(如“李白”)或叠字名(如“李思思”),直接把选出的Top-N起名候选用字一一和姓氏搭配即可。如果是起双字名(如“李清照”),则首先为名的第一字选取候选用字,然后再为第二字选取候选用字,最后用第一个和第二个字相互组合搭配后再和姓氏组合即可。具体示意图请参考图6A、6B、6C。为了防止起出低俗、怪异的名字,本系统中用到了一个名字过滤词表。通过两种策略过滤低俗、怪异的名字:其一,字面过滤,即起出来的名字不能和过滤词表中的名字一致,如姓“戴”,不能起名为“戴帽子”;其二,读音过滤,即起出来的名字在读音上不能和过滤词表中的名字一致,如姓“夏”,最好不起“夏建”,“夏见”等,因为名字的读音“xià jiàn”和词语“下贱”的读音完全相同,此词常用来骂人故应该避免。过滤词表是通过人工收集的那些有不好意义、有不雅读音的名字构成的集合。
本发明的另一个重要内容是名字评价体系。一个好的名字既要符合起名习惯,还要好听,好记,有意义。给定一系列通过上述方法起出来的名字,可以从如下几个方面评价名字的好坏:1)名字是否更多的体现了用户意愿;2)名字中名的第一个字和第二个字是否搭配(单字名除外),即是否符合起名习惯;3)名字中名和姓氏是否搭配,有的字和某些姓氏搭配起来就很奇怪,如上面提到的姓“夏”名“建”就不行,再比如姓“刘”名“芒”也不好;4)名字的读音是否好听,念起来是否拗口,名字“王旺旺”念起来就比较拗口;5)名字用字是否太生僻或者笔画太多。字太生僻,很多人不会念,而笔画太多则写起来很费劲。
对于第1)点,通过前面介绍的选字环节,所选出来的字或多或少体现了用户某方面的意愿,所以只要在评价名字的时候考虑各个字所占起名意愿比重即可,即前面提到的意愿得分。一般地,能经常用于人名的字都是一些有好的意义,简单易记、易读的字。同时,已有的名字都是人们绞尽脑汁才起出来的,其中包含人名用字之间的搭配关系。从一个大规模人名库中就可以学习出名字中字与字之间的搭配关系,以及名和姓氏的搭配关系。因此,如果有一种好的机器学习方法,就可以从一个大规模人名库中自动学习出人名用字的搭配规律。用学习到的规律来评价生成的名字就能顺利解决上面提到的第2)、3)、4)、5)方面的问题。统计语言模型(Statistical Language Modeling)提供了一个绝佳的选择。语言模型是一种广泛用在自然语言处理和信息检索领域的机器学习方法,本发明使用语言模型从人名库中学习人名用字规律,并用学习到的规则来评价生成的候选名字。下面将详细介绍这个基于语言模型的名字评价体系。
给定姓氏(标记为XS)和候选名(标记为C),基于大规模人名库训练的二元语言模型LM,有:
P ( C | XS ) = P ( C ) P ( XS | C ) P ( XS ) ∝ P ( C ) P ( XS | C ) - - - F 8
公式中P(C)表示名字的语言模型,P(XS|C)表示给定名字C和姓氏XS一起出现的概率。P(C)即LM,用于保证名字C符合人名习惯,不会出现怪异的名字;P(XS|C)保证名字C和姓氏XS组合在一起不会觉得怪异。在具体实现的时候,为了评价一个名字的好坏,本发明分两步进行评价:第一步用训练好的LM对候选名字C进行打分,P(C|LM);第二步,用姓氏和名字的相互影响,给最后的姓名打分,P(XS|C)。同时计算名字的属相、五行、五格的分数,把各个分数加权求和得到名字的最终得分。需要注意的是,在训练名字的语言模型的时候,男孩和女孩分开训练,即男、女各有一个打分模型。同时,由于名字的字数太少,为了能考虑字位置信息,在训练和测试的时候,在名字的前面加上开始标签<START>,在名字的末尾加上<END>标签,这里<START>,<END>标签将被视作一个存在的字来对待。
第一步:计算生成名字的概率
P ( C | LM ) = P ( W 1 , W 2 , W i , . . . , W n | LM ) (C由字W1,W2,Wi,...,Wn构成)
= P ( W 1 | N ) &Pi; i = 2 n [ &omega;P ( W i | LM ) + ( 1 - &omega; ) P ( W i | W i - 1 , LM ) ] - - - F 9
这里的P(W1|LM)为开始标签<START>,对所有名字都相同,故可以去掉,有:
P ( C | LM ) &Proportional; &Pi; i = 2 n [ &omega;P ( W i | LM ) + ( 1 - &omega; ) P ( W i | W i - 1 , LM ) ] - - - F 10
两边同时取Log,有:
NameScore = Log &Pi; i = 2 n [ &omega;P ( W i | LM ) + ( 1 - &omega; ) P ( W i | W i - 1 , LM ) ]
= &Sigma; i = 2 n Log [ &omega;P ( W i | LM ) + ( 1 - &omega; ) P ( W i | W i - 1 , LM ) ] - - - F 11
其中P(Wi|LM)为一元语言模型,一元语言模型只关注单个字出现的概率。在本发明中,为了兼顾用户意愿和人名库中字的使用规律,P(Wi|LM)为上面提到的综合意向得分,即ImageScore’。P(Wi|Wi-1,LM)为二元语言模型,二元语言模型可以考虑字与字之间的搭配关系,即前一个字为Wi-1,计算后一个字为Wi时的概率,此值越大,说明这两个字经常搭配在一起使用。ω为一元语言模型和二元语言模型的加权因子,取值0到1之间,可以通过调节ω的值配置更偏重于一元模型还是二元模型。
第二步:计算名字和姓氏相互搭配关系得分和传统属相、五行、五格分数
P ( XS | C ) = P ( XS | W 1 , W 2 , W i , . . . , W n ) (注:Wi代表名字第i个字)
&Proportional; P ( XS | W 1 ) &Pi; i = 2 n [ &gamma;P ( XS | W i ) + ( 1 - &gamma; ) P ( XS | W i - 1 , W i ) ] - - - F 12
两边同时取Log,有:
XSScore = LogP ( XS | W 1 ) + &Sigma; i = 2 n Log [ &gamma;P ( XS | W i ) + ( 1 - &gamma; ) P ( XS | W i - 1 , W i ) ] - - - F 13
P(XS|Wi)表示给定字Wi,出现姓氏XS的条件概率;P(XS|Wi-1,Wi)为给定Wi-1,Wi,出现姓氏XS的条件概率。γ为加权因子,取值0到1之间。
前面提到,起名还需要兼顾传统的属相、五行、五格起名的要求。基于此,根据其满足各自起名要求的情况,还需要为属相、五行、五格三方面打分。给定一个名字,衡量其是否符合五行的起名要求,包含两个方面:其一,名字中包含“允许的五行”;其二,名字中不包含“不允许的五行”。于是,有如下经验化的五行打分模型:
允许的五行  不允许的五行
Figure A20081010358800321
完全满足:如果应该包含的五行是“金水”,名字正好出现了“金水”,则认为是完全满足的。
部分满足:如果应该包含的五行是“金水”,名字只出现了“金”,则认为是部分满足的。
不满足:如果某个人的名字应该包含的五行是“金水”,名字没有出现了“金水”,则认为是不满足的。
比如,给定一个名字“陈泽金”,如果通过生辰八字分析,其名字中应该包含“水”,不应该包含“金”。经过分析发现,“泽”的五行正好为“水”,满足了允许的五行的要求,“金”的五行为“金”,不满足“名字中不应该包含‘金’”的起名要求,故该名字只能得到0.4分。
用相同的方法为属相起名打分,打分模型如下:
属相允许的偏旁  属相不允许的偏旁
Figure A20081010358800331
五格起名分数的计算方法前面已经介绍过了,即WuGeFinalScore,简记为WG。
综上所述,给定一个名字,传统的属相、五行、五格起名的得分用以下经验打分公式给出:
ClassicScore=λ1*WX+λ2*WG+λ3*SX    F14
其中,WX表示五行的得分,WG表示五格的得分,SX表示属相的得分。λ1,λ2,λ3为各个分数的加权因子,取值介于0到1之间。根据用户的选择和配置,选择合适的加权值即可。
最后,给定名字的最终得分由如下公式给出:
FinalScore=δ*XSScore+(1-δ)*ClassicScore    F15
其中,δ为可调节的参数,介于0到1之间,此参数可以由用户自己调节和配置。δ越大,其结果越偏重于意向起名的结果,反之,则其结果越偏重于传统起名的结果。如果用户对传统的起名分数不作要求,则δ取值为1,此时名字的评价分数完全取决于名字和姓氏的搭配关系得分XSScore。由这个公式可以看出,名字评价体系同时兼顾了用户意愿和传统起名的要求。
参数估计:
上述公式F11和F13中有如下参数需要估计:P(Wi|LM)、P(Wi|Wi-1,LM)、P(XS|Wi)、P(XS|Wi-1,Wi)、ω、γ。其中,前面四个参数采用极大似然估计(MaximumLikelihood Estimation)给出,训练语料为前面提到的上亿人名库。参数的估计方法如下:
P ( W i ) = Count ( W i ) Count ( * ) - - - F 16
P ( W i | W i - 1 ) = Count ( W i - 1 W i ) Count ( W i - 1 ) - - - F 17
P ( XS | W i ) = Count ( W i inXS ) Count ( W i ) - - - F 18
P ( XS | W i - 1 , W i ) = Count ( W i - 1 W i inXS ) Count ( W i - 1 W i ) - - - F 19
其中,Count(Wi)为字Wi在人名库中出现的次数,Count(*)为人名库中所有字出现的总次数。Count(Wi-1Wi)为Wi-1Wi出现的次数,Count(Wi-1)为Wi-1出现的次数。Count(Wi in XS)为Wi和姓氏XS一起出现的次数,Count(Wi-1Wi in XS)为Wi-1Wi和姓氏XS一起出现的次数。
由于数据稀疏的原因,如果某个字没有出现在人名库中,就会使得上面的值都为0。为了避免这种情况发生,需要采取相应的平滑措施,使得即便没有出现在人名库中的字的概率也不为0。本发明使用“加1”平滑法,具体做法如下:
P ( W i ) = &RightArrow; Smooth Count ( W i ) + 1 Count ( * ) + | V | - - - F 20
其中,|V|为字典中汉字的总个数。通过上面的平滑方法,如果某个字没有出现在人名库中,将会得到一个很小的平滑概率,其值为
Figure A20081010358800351
参数ω、γ由经验给出。
在评价名字的时候,首先用公式F11对姓名中的名字部分进行打分,根据得分的高低进行排序,选取Top-M;然后用公式F15对整个姓名打分,根据得分的高低对上一步保留下来的Top-M重新排序。通过上面的两步就能很好的挑出即满足用户意愿,又符合起名习惯的好名字,同时兼顾了传统的属相、五行、五格的起名要求。理论上讲,到此位置已经足够了。为了得到最好的名字,还需要根据字型、读音对排序好的名字做适当的微调。字型上,主要是考虑字的笔画和结构。对于笔画太多的名字,给予一个小的处罚因子。在结构方面(本发明主要考察:左右结构、上下结构、半包围结构、全包围结构、独体结构、夹合结构),中国人很讲究名字书写的美观,应该避免名字中所有的字都是一个结构,这样的名字往往写出来不美观。所以对于结构不好的名字,也给予一个小的处罚因子。很多用户都要求起出来的名字要响亮,这其实是从读音方面提出的要求。没有一个具体的标准来衡量一个名字是否够响亮,但如果起名的时候遵从一些声韵方面的规则往往能达到很好的效果。本发明主要从三个方面考察名字的读音:1)声调。一个叫起来是否顺口,声调的搭配是最重要的。一般地,姓名的几个字最好不取相同的声调。分析发现,名字中相邻的字的声调不同能使得名字读起来更抑扬顿挫,读着比较顺口;2)声母和韵母搭配。如果一个名字中所有字的声母或者韵母都相同,读起来就很费劲。如名字“王旺旺”读起来就比较费劲;3)名字中是否包含多音字。汉字中有很多字有多个读音,不同的读音,字义也不尽相同。如果名字中出现多音字,在念名字的时候会产生歧义,因为不熟悉的人不知道该念哪个读音。所以,名字中也应该避免使用多音字。因此,对于不符合以上三点要求的名字,也给予一个小的处罚因子。经过微调后,重新排序,这样给出的名字就非常完美了。
名字起好后,就要将其展示给用户。通常情况下,用户在看到所起的名字后,受到名字的启发用户脑子里又会增加一些其他的想法。这个时候,需要提供一种简洁、方便的交互方式,让用户可以和名字进行“对话”。这里所说的对话,主要是指:名字变换、按类别起名、交互搜索。同时,这也是一种再收集用户起名意愿的方式。通过交互,用户充分表达自己的意愿,直到获取满意的名字为止。下面将就此做详细的说明。
所谓名字变换,是指用户可以变换所起名字中的某个字。这种情况一般发生在用户对所起名字基本满意,只是对局部某个字不太满意,这个时候就可以使用此功能变换这个不满意的字。作为一种实现方式,本发明目前可以支持四种变换方式:同音(近音)字变换、相同笔画字变换、同义(近义)字变换、以及相同偏旁部首字变换。具体实现方式如下:首先,根据用户所选择的需要变换的名字以及名字中需要变换的字和相应的变换方式,找出满足条件的变换候选用字;然后,用找到的候选用字替换已有名字中需要变换的字,以得到新的名字;最后,用上面提到的名字评价体系对新生成的名字打分、排序输出。用户除了可以变换起出来的名字外,还可以继续变换变换出来的名字,如此迭代,直到得到他们满意的名字为止。
分析发现,很多用户对于某些特定类别的名字很喜欢,比如很多用户喜欢起大气磅礴的名字,有的则喜欢吉祥如意的名字,作为一种实现,本发明目前主要考虑的类别如图5所示,根据需要,可以做适当的扩展。为了方便用户快速起出这样的名字,本发明提供一个接口,用户可以根据自己的喜好选择某个类别,也可以同时选择多个类别进行起名。为此,事先为各个类别准备好最相关的那些起名用字,当用户选者某个类别的时候,系统自动在起名的时候加上这些类别起名用字,使得起出的名字都是和指定类别相关的名字,以满足用户需求。同样的,使用和前面的相同名字评价体系对名字打分、排序。
在展示候选名字的时候,本发明提供了一个接口,用户可以指定某个条件进行搜索,以得到满足某些条件的候选名字。用户指定的这些搜索条件,真实的反映出他们心里希望包含的信息。通过搜索,可以大大减少用户的查询空间,方便用户快速找到其想要的名字。
到此为止,已经完成了至关重要的理解用户意愿、起名工作和用户交互工作,接下来就是把起出来的名字展示给用户,即如何给用户解释所起的名字,以说服用户使用所起的名字。这一步也是至关重要的,因为再好的名字,如果说不清楚究竟好在哪里,用户是不会接受的。要想说服用户,首先就得搞清楚用户最关心哪些方面的信息,即他们最在乎起出来的名字能否满足他们的需求。分析发现,用户主要关心如下几个方面:1)名字是否有好的读音、好的字形结构、好的意义;2)名字是否迎合起名意愿;3)名字是否出自某个典籍以及是否符合传统起名的要求。基于此,本发明将从这三个方面对起好的名字进行解释。
姓名中各个字的基本属性是用户比较关注的。给出姓名中每个字详细的信息,包括简体字、繁体字、简体笔画、繁体笔画、姓名学笔画、偏旁部首、字的结构、读音、字的五行属性、字义、字出现在人名库中的次数。大部分简体字都是从繁体字演变过来的,繁体字中蕴含了更多的文化内涵,有助于用户深入了解汉字。
除了姓名基本信息之外,用户还比较关心所起名字是否满足了他们意愿。通过前面的用户意愿理解模块和名字评价模块,本发明所起出来的名字基本都能满足用户某方面的意愿。在这里,就需要告诉用户所起的名字是如何满足他们的意愿的,即为什么要起这个名字。前面提到,在进行意愿分析的时候已经记录下每个字的出处,即字是从用户的哪些意愿中引申出来的。有了这些信息,还需要用一种自然流畅的方式展示给用户,告诉用户起名思路,这种方式给用户以娓娓道来的感觉,很容易被人接受。为此,本发明为每个名字都将生成一个自然语言的美名总评。例子:
夏玉春-玉、春系女子名常用字。选玉试图体现您的意愿。比如,您的意愿里包括漂亮,可引申出玉女,从中选玉字。宝宝出生在立春,从中选春字。
这个例子中,试图以一种自然的方式告诉用户名字“夏玉春”的由来。作为一种实现方式,本发明采用了模板填槽的方式来生成自然语言的名字解释摘要,即事先准备多套描述模板,某些需要具体表述的地方先空出来。给定一个名字,把和名字相关的信息填入模板对应的空白处即可。上面给出的例子就是基于模板填槽的方式生成的,用到的是下面这个模板:
{0}-{1}系女子名常用字。选玉试图体现您的意愿。比如,您的意愿里包括{2},可引申出{3},从中选{4}字。宝宝出生在{5},从中选{6}字。
上面模板中槽{0}-{6}需要根据具体名字补充的信息。
通常用户希望自己的名字看起来更高雅一些。一般地,如果名字出现在诗词、歌赋、成语、典故中就会显得高雅,有文化底蕴。这也是很多用户所要求的,名字或者名字用字最好出现在诗词、歌赋、成语、典故中。在诗词、歌赋、成语、典故中,成语最为短小精悍,是语言中的精化或者精萃。为此,本发明为名字设计了嵌名成语、嵌名诗词,用以拓展名字的意境。所谓嵌名成语,是指用一个包含名字的成语序列或诗词序列来解释名字,以拓展名字的意境,如名字“若平”可以用嵌名成语“虚怀若谷 修齐治平”来解释。通过成语嵌名,用户获得了一系列和其名字紧密相关的成语解释,增加了名字的文化积淀,也提高了用户的体验度。这样的序列有很多,为了从中选择最好的序列来解释名字,本发明根据序列中各个成语或者诗词短句的特征为每个序列经验性的赋予相应的分数,并根据分数排序选取得分最高的成语或诗词序列。到现在为止,人们常用的成语有3万多个,其中很大一部分不适合用来解析人名。能用来解析人名的成语必须具有积极正面的意义。为此,本发明在实施的过程中,把3万多个成语人工标注了一遍,从中挑选出适合用来解析人名的成语。
除此之外,很多用户希望能用一句很有意义的话解释名字的含义。如“华丽”可以用一句话解释为“为华夏开拓更绚丽的未来”、“明日的天空也将有华夏绘制的美丽彩虹”等,如“玉冰”可以一句话解释为“像冰和玉一样高洁”等。本发明把这样的解释称为趣味解释。趣味解释的引入,极大的拓展了名字的意境。为此,需要事先为各个候选名字准备若干句趣味解释的句子,使得趣解更多样化。
与此同时,本发明还将对传统的属相、五行、五格做详细的解释。具体做法是:属相上,解释当前属相应该包含的偏旁部首和应该避讳的偏旁部首;五行上,解释对应的生辰八字,根据五行相生相克的原理分析五行缺旺以及建议;五格上,给出姓名中包含的天格、地格、人格、外格、总格、三才数理、成功运、基础运、人际关系9个方面的数理暗示。
上述的系统和方法也可以用在起外文人名系统中。还可以用在除起人名系统之外的其它起名系统中。例如,可以用来起昵称、网名、小名,也可以用在起公司名,起产品名系统中。
为了说明起见,上面参照特定实施例对本发明作了描述。但是,上面的例示性讨论是不完全的,也不打算使本发明局限于所公开的确切形式。可以按照上面所讲述的内容作出相应的修正和改变。选择和描述这些实施例是为了最佳地说明本发明的原理和它的实际应用,从而使本领域的其它普通技术人员能够最佳地利用本发明和为了适合特定应用而作出各种修正的各种实施例。

Claims (25)

1.一种基于用户意愿的计算机智能起名方法,包含:
接受用户提交的起名基本信息和起名意愿;
分析理解用户起名意愿,根据用户需要兼顾传统的属相、五行、五格,以得到起名候选用字;
生成候选名字列表并根据用户意愿,以及属相、五行、五格为其打分排序;
用户利用系统提供的交互手段,补充或者细化起名意愿,系统动态更新生成新的名字候选;
对所起的名字提供解释,说明起名的思路。
2.根据权利要求1所述的方法,其特征在于:所述的接受用户提交的起名基本信息和起名意愿包含姓氏、性别、名的形式(单字、双字、叠字)、出生日期、出生地点、美好祝愿、草稿名、职业期望、性格期望、父亲姓名、母亲姓名、指定字的声母、指定字的韵母、指定字的声调、指定字的偏旁部首、指定字的结构、指定字的笔画组合、指定字、指定字义、避讳字、避讳偏旁部首。
3.根据权利要求1所述的方法,其特征在于:分析理解用户起名意愿,根据用户需要兼顾传统的属相、五行、五格,以得到起名候选用字,包含:
a.查询姓氏信息表中的姓氏用字的含义,字的拆分信息,姓氏起源,源流以及姓氏中有名的人物、事件,以得到姓氏相关的起名候选用字;
b.查询日期时间信息表中出生日期时间相关的季节、节气、节日、名人诞辰、重大历史事件、出生具体所在月份、时刻的别称,以得到出生日期时间相关的起名候选用字;
c.访问地点信息表中出生地点的在历史变迁中曾经使用过的名字,曾经发生过的重大历史事件以及出生所在地的风土人文、名胜古迹,以得到出生地点相关的起名候选用字;
d.从音形义三方面扩展父母名字用字。其中,读音上做同音字扩展,或者采用父(母)亲用字的声母同母(父)亲用字的韵母进行组合,通过新获得的拼音获取名字用字;字型上做相同偏旁部首扩展,或者采用父(母)亲用字的部首同母(父)亲用字的偏旁进行组合,来获得名字用字;字义上取相同字义的字做扩展,以得到父母名字相关的起名候选用字;
e.分析美好祝愿,提取关键词,并作相应的扩展和延伸,以得到美好祝愿相关的起名候选用字;
f.根据指定的职业期望和性格期望,通过一个职业特征表和性格特征表,获取其对应的特征词汇,以得到职业和性格相关的起名候选用字;
g.对草稿名做适当的音形义方面的变换、扩展。其中,读音上做同音字扩展;字型上做相同偏旁部首扩展;字义上取相同字义的字做扩展,以得到草稿名相关的起名候选用字;
h.利用用户输入的姓氏、出生时间、出生地点、美好祝愿起名信息作为查询条件,从建好索引的数据库中快速查询相关的诗词、歌赋、成语、典故。从返回的相关的诗词、歌赋、成语、典故中进行分析、统计,从中选取出现频度高于一个指定阈值的短语、句子以产生起名候选用字;
i.将用户的起名信息向量映射到某个预定义的意愿类别上去,用预定义的类别特征向量扩展用户意愿,以得到意愿类别相关的起名候选用字;
j.如果用户要求起名兼顾传统的属相、五行、五格起名法,还需要分析传统的属相、五行、五格特征,以得到满足属相、五行、五格起名要求的起名候选用字;
k.综合以上各方面所得到的起名候选用字,为每个字赋予相应的意愿分数和字用作人名的分数,将分数加权求和,并根据分数高低排序,取排在前面的N个字作为最终的起名候选用字。
4.根据权利要求3所述的方法,其特征在于:所述的分析美好祝愿,提取关键词,并作相应的扩展和延伸,包含:
从用户意愿描述中抽取关键词;
对抽取出来的关键词做同义和联想扩展,即使用同义词词表和联想词词表对关键词作扩展。
5.根据权利要求3所述的方法,其特征在于:所述的分析传统的属相、五行、五格特征包含:
根据出生日期查询对应的属相,在知道属相以后,直接查一个属相映射表即可知道哪些偏旁部首的字是适合该属相的,哪些偏旁部首的字不适合该属相。这些适合的字就构成了属相相关的起名候选用字;
根据出生日期和五行姓名学的要求,分析出名字中应该包含的五行和应该避讳的五行,选用那些五行属性正好为名字中应该包含的五行对应的字作为五行相关的起名候选用字;
根据姓氏和五格数理的起名要求,计算出和姓氏搭配的最佳姓名笔画组合,再根据笔画组合选择对应的字作为五格相关的起名候选用字。这里的笔画数为字的姓名学笔画,可以从字的基本信息表中查询得到。
6.根据权利要求1所述的方法,其特征在于:所述的生成候选名字列表并根据用户意愿,以及属相、五行、五格为其打分排序,包含:
根据起名候选用字生成候选名字列表;
对生成的候选名字打分排序。
7.根据权利要求6所述的方法,其特征在于:所述的根据起名候选用字生成候选名字列表,包含:
生成单字名或叠字名,方法是:直接把选出的N个起名候选用字一一和姓氏搭配即可;
生成双字名,方法是:首先为名的第一字选取候选用字,然后再为第二字选取候选用字,最后用第一个位置上的字和第二个位置上的字相互组合搭配后再和姓氏组合即可;
通过两种策略过滤低俗、怪异的候选名字:其一,字面过滤,即起出来的名字不能和过滤词表中的名字一致;其二,读音过滤,即起出来的名字在读音上不能和过滤词表中的名字一致。
8.根据权利要求6所述的方法,其特征在于:所述的对生成的候选名字打分排序,包含:
计算候选名字中名部分(除去姓氏的部分)的分数,并根据得分的高低排序,保留排在前面的M个名字;
计算保留的M个候选名字中名部分(除去姓氏的部分)和姓氏的搭配关系分数,根据用户要求,同时计算名字的属相、五行、五格的分数,把各个分数加权求和得到名字的最终得分,并根据此得分的高低重新排序;
根据字型、读音对排序做适当的微调。
9.根据权利要求8所述的方法,其特征在于:所述的候选名字中名部分(除去姓氏的部分)的分数为二元语言模型生成名字的概率。二元语言模型是基于大规模人名库学习出来的。
10.根据权利要求8所述的方法,其特征在于:所述的名字中名部分(除去姓氏的部分)和姓氏的搭配关系分数为给定名部分出现指定姓氏的条件概率。此概率是基于大规模人名库学习出来的。
11.根据权利要求8所述的方法,其特征在于:所述的计算名字的属相、五行、五格的分数是指根据名字符合属相、五行、五格各自起名要求的情况赋予一个适当的分数。如果用户对传统的属相、五行、五格不作要求,则该部分分数为零。
12.根据权利要求8所述的方法,其特征在于:所述的根据字型、读音对排序做适当的微调是指字型上,主要是考虑字的笔画和结构;字音上从三个方面考察名字的读音:声调搭配;声母和韵母搭配;名字中是否包含多音字。根据名字满足以上条件的情况给予一定的奖励分数和惩罚分数。
13.根据权利要求1所述的方法,其特征在于:所述的用户利用系统提供的交互手段,补充或者细化起名意愿,系统动态更新生成新的名字候选是指提供一种简洁、方便的交互方式,让用户可以和所起的名字进行交互,补充或者细化起名意愿,系统动态更新生成新的名字候选。这里所说的交互,主要是指:名字变换、按类别起名、交互搜索。
14.根据权利要求13所述的方法,其特征在于:所述的名字变换是指根据某种方式变换所起名字中的某个字,有四种变换方式:同音(近音)字变换、相同笔画字变换、同义(近义)字变换、以及相同偏旁部首字变换。具体步骤如下:
首先,根据用户所选择的需要变换的名字以及名字中需要变换的字和相应的变换方式,找出满足条件的变换候选用字;
然后,用得到的候选用字替换已有名字中需要变换的字,以得到新的名字;
最后,对新生成的候选名字打分、排序、输出。经变换生成的名字可以再次变换,如此迭代,直到用户满意为止。
15.根据权利要求13所述的方法,其特征在于:所述的按类别起名是指用户可以根据自己的喜好选择某个预定义的类别,也可以同时选个多个类别进行起名。各个类别都有最相关的类别起名用字,当用户选择按某个类别起名的时候,系统自动在起名的时候加上这些类别起名用字,使得起出的名字都是和指定类别相关的名字,以满足用户需求。
16.根据权利要求13所述的方法,其特征在于:所述的交互搜索是指根据用户指定的搜索条件,在已有的候选名字列表中进行搜索。把满足条件的名字返回给用户,以缩小用户查找范围。
17.根据权利要求1所述的方法,其特征在于:所述的对所起的名字提供解释,说明起名的思路是指利用多维饱满的信息解释所起的名字,包含:
名字中各个用字的基本属性;
自然语言形式表达的名字的综合评价;
包含名字的成语、诗词、格言警句以及趣味解释;
传统的属相、五行、五格相关的解释。
18.根据权利要求17所述的方法,其特征在于:所述的名字中各个用字的基本属性是指每个字详细的信息,包括简体字、繁体字、简体笔画、繁体笔画、姓名学笔画、偏旁部首、字的结构、读音、字的五行属性、字义、字出现在人名库中的次数。
19.根据权利要求17所述的方法,其特征在于:所述的自然语言形式的综合评价是指用一种自然流畅的语言告诉用户起名思路。本发明采用模板填槽的方式来生成自然语言的美名总评,即事先准备多套美名总评描述模板,某些需要具体表述的地方先空出来。给定一个名字,把起名思路和名字相关的信息填入模板对应的空白处即可。
20.根据权利要求17所述的方法,其特征在于:所述的包含名字用字的成语、诗词、格言警句是指用一个包含名字的成语序列、诗词、格言警句序列来解释名字,以拓展名字的意境。这样的序列有很多,为了从中选择最好的序列来解释名字,本发明根据序列中各个成语、诗词短句、格言警句的特征以及和名字的关系为每个序列赋予相应的分数,并根据分数排序选取得分最高的序列。趣味解释是指用一句富有意义的句子解释名字的含义,以拓展名字的意境。
21.根据权利要求17所述的方法,其特征在于:所述的传统的属相、五行、五格相关的解释包含:
属相上,解释当前属相应该包含的偏旁部首和应该避讳的偏旁部首,以及所起名字满足属相起名的情况;
五行上,解释对应的生辰八字,根据五行相生相克的原理分析五行缺旺以及建议,以及所起名字满足五行起名的情况;
五格上,给出姓名中包含的天格、地格、人格、外格、总格、三才数理、成功运、基础运、人际关系9个方面的数理暗示。
22.一种基于用户意愿的计算机智能起名系统,包含:
接受用户提交的起名基本信息和起名意愿的装置;
分析理解用户起名意愿,根据用户需要兼顾传统的属相、五行、五格,以得到起名候选用字的装置;
生成候选名字列表并根据用户意愿,以及属相、五行、五格为其打分排序的装置;
用户利用系统提供的交互手段,补充或者细化起名意愿,系统动态更新生成新的名字候选的装置;
对所起的名字提供解释,说明起名的思路的装置。
23.根据权利要求23所述的方法,其特征在于:所述的名字即可以是中文人名,外文人名,还可以是昵称、网名、小名、公司名、产品名。
24.一种基于用户意愿的计算机智能起名的计算机程序产品,包含:
接受用户提交的起名基本信息和起名意愿的指令;
分析理解用户起名意愿,根据用户需要兼顾传统的属相、五行、五格,以得到起名候选用字的指令;
生成候选名字列表并根据用户意愿,以及属相、五行、五格为其打分排序的指令;
用户利用系统提供的交互手段,补充或者细化起名意愿,系统动态更新生成新的名字候选的指令;
对所起的名字提供解释,说明起名的思路的指令。
25.根据权利要求25所述的方法,其特征在于:所述的名字即可以是中文人名,外文人名,还可以是昵称、网名、小名、公司名、产品名。
CNA2008101035888A 2008-04-09 2008-04-09 基于用户意愿的计算机智能起名 Pending CN101556574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101035888A CN101556574A (zh) 2008-04-09 2008-04-09 基于用户意愿的计算机智能起名

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101035888A CN101556574A (zh) 2008-04-09 2008-04-09 基于用户意愿的计算机智能起名

Publications (1)

Publication Number Publication Date
CN101556574A true CN101556574A (zh) 2009-10-14

Family

ID=41174692

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101035888A Pending CN101556574A (zh) 2008-04-09 2008-04-09 基于用户意愿的计算机智能起名

Country Status (1)

Country Link
CN (1) CN101556574A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411665A (zh) * 2010-09-21 2012-04-11 腾讯科技(深圳)有限公司 分析姓名的方法和装置
CN102819610A (zh) * 2012-08-23 2012-12-12 广州多益网络科技有限公司 一种命名方法和命名系统
CN105354032A (zh) * 2015-11-12 2016-02-24 湖南右脑科技有限公司 一种自动生成创意的方法及系统
CN105488083A (zh) * 2014-12-08 2016-04-13 哈尔滨安天科技股份有限公司 一种数据库蜜罐中姓名字段的构造方法及系统
CN106407314A (zh) * 2016-08-31 2017-02-15 李城华 人名自动计算方法及系统
CN107168958A (zh) * 2017-05-15 2017-09-15 北京搜狗科技发展有限公司 一种翻译方法及装置
CN107391491A (zh) * 2017-08-04 2017-11-24 王强 文字选择方法及装置
CN107424008A (zh) * 2017-07-16 2017-12-01 江苏才标信息科技有限公司 一种商标起名服务悬赏方法
CN107729301A (zh) * 2017-09-29 2018-02-23 广州多益网络股份有限公司 一种玩家游戏名字的生成方法及系统
CN109711953A (zh) * 2019-01-23 2019-05-03 山东可里巴巴知识产权运营有限公司 一种在线商标起名系统及起名方法
CN109785071A (zh) * 2019-01-23 2019-05-21 山东可里巴巴知识产权运营有限公司 在线商标起名系统及基于该系统的共享式商标起名方法
CN109785070A (zh) * 2019-01-23 2019-05-21 山东可里巴巴知识产权运营有限公司 一种共享式商标起名系统及方法
CN109801139A (zh) * 2019-01-23 2019-05-24 山东可里巴巴知识产权运营有限公司 一种基于互联网的商标起名系统及起名方法
CN110210017A (zh) * 2019-04-29 2019-09-06 厦门一品威客网络科技股份有限公司 一种自动命名方法、装置、计算机设备及存储介质
CN110716964A (zh) * 2019-09-19 2020-01-21 卓尔智联(武汉)研究院有限公司 基于gru网络的新生儿取名方法、电子设备及存储介质
CN115017274A (zh) * 2021-11-17 2022-09-06 广东东软学院 一种基于大数据取新生儿名字的方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411665A (zh) * 2010-09-21 2012-04-11 腾讯科技(深圳)有限公司 分析姓名的方法和装置
CN102411665B (zh) * 2010-09-21 2015-12-09 腾讯科技(深圳)有限公司 分析姓名的方法和装置
CN102819610A (zh) * 2012-08-23 2012-12-12 广州多益网络科技有限公司 一种命名方法和命名系统
CN105488083A (zh) * 2014-12-08 2016-04-13 哈尔滨安天科技股份有限公司 一种数据库蜜罐中姓名字段的构造方法及系统
CN105488083B (zh) * 2014-12-08 2020-08-21 哈尔滨安天科技集团股份有限公司 一种数据库蜜罐中姓名字段的构造方法及系统
CN105354032A (zh) * 2015-11-12 2016-02-24 湖南右脑科技有限公司 一种自动生成创意的方法及系统
CN106407314A (zh) * 2016-08-31 2017-02-15 李城华 人名自动计算方法及系统
CN107168958A (zh) * 2017-05-15 2017-09-15 北京搜狗科技发展有限公司 一种翻译方法及装置
CN107424008A (zh) * 2017-07-16 2017-12-01 江苏才标信息科技有限公司 一种商标起名服务悬赏方法
CN107391491A (zh) * 2017-08-04 2017-11-24 王强 文字选择方法及装置
CN107729301A (zh) * 2017-09-29 2018-02-23 广州多益网络股份有限公司 一种玩家游戏名字的生成方法及系统
CN107729301B (zh) * 2017-09-29 2021-03-16 广州多益网络股份有限公司 一种玩家游戏名字的生成方法及系统
CN109711953A (zh) * 2019-01-23 2019-05-03 山东可里巴巴知识产权运营有限公司 一种在线商标起名系统及起名方法
CN109785071A (zh) * 2019-01-23 2019-05-21 山东可里巴巴知识产权运营有限公司 在线商标起名系统及基于该系统的共享式商标起名方法
CN109785070A (zh) * 2019-01-23 2019-05-21 山东可里巴巴知识产权运营有限公司 一种共享式商标起名系统及方法
CN109801139A (zh) * 2019-01-23 2019-05-24 山东可里巴巴知识产权运营有限公司 一种基于互联网的商标起名系统及起名方法
CN110210017A (zh) * 2019-04-29 2019-09-06 厦门一品威客网络科技股份有限公司 一种自动命名方法、装置、计算机设备及存储介质
CN110716964A (zh) * 2019-09-19 2020-01-21 卓尔智联(武汉)研究院有限公司 基于gru网络的新生儿取名方法、电子设备及存储介质
CN115017274A (zh) * 2021-11-17 2022-09-06 广东东软学院 一种基于大数据取新生儿名字的方法

Similar Documents

Publication Publication Date Title
CN101556574A (zh) 基于用户意愿的计算机智能起名
Leach Guillaume de Machaut: secretary, poet, musician
Bray Technics and civilization in late imperial China: an essay in the cultural history of technology
Eppler The syntax of German-English code-switching
Liu et al. Exploring Chinese poetry with digital assistance: Examples from linguistic, literary, and historical viewpoints
Ruan et al. Exploring emotion differences in tourist attractions based on online travel notes: a case study in Nanjing, China
Goddard et al. Lexicographic research on Australian Aboriginal languages 1968-1993
Kevers et al. Towards a Corsican Basic Language Resource Kit
Brylak et al. Loans in Colonial and Modern Nahuatl: A contextual dictionary
Karatsareas et al. Exploring linguistic hybridity and lexical creativity in the UK’s Greek Cypriot diaspora: The Grenglish project
Horenberg Using CAT in literary translation-How tools may support translators in source-text analysis, translation and retranslation: A case study of “Mr Loveday’s Little Outing”
Хомутский et al. Английский для востоковедов/English for Asian Studies Coursebook
Huang Ways of Love: Self-making and Repertoire Formation through the Musical Legacy of Shah Abdul Latif in Sindh, Pakistan
CN101436179A (zh) 文本转换方法及装置
Mohamed et al. Computing Happiness from Textual Data
Feng et al. Conflicting images of the Great Wall in cultural heritage tourism
Bijak et al. Onomastics in Interaction With Other Branches of Science. Volume 3. General and Applied Onomastics. Literary Onomastics. Chrematonomastics. Reports: Proceedings of the 27th International Congress of Onomastic Sciences
Godinho Trends in the scientific production on intangible cultural heritage, a bibliometric analysis
Ren et al. A STUDY ON THE ANALYSIS METHOD OF COGNITION PREFERENCES FOR URBAN LANDSCAPES BASED ON SNS DATA AND MACHINE LEARNING
Papadima et al. Semiotic Modes in Local Gastronomic Discourse: A Comparative Analysis of Culinary Shop Signs in Greece and Cyprus
Bowman Writing by numbers: case studies in digital art history
Wilson A succession of dialogues: François-Marie Luzel and his contribution to the Breton folk tale
Faggiano Content Analysis Applied to In-depth Interviews: Drawing Ideas from an Empirical Study on Religiosity in Italy
Abello et al. Disentangling the Folklore Hairball: A Network Approach to the Characterization of a Large Folktale Corpus
Grant Anthology

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091014