本發(fā)明涉及一種人際關(guān)系畫像方法,屬于社會(huì)計(jì)算領(lǐng)域的一個(gè)重點(diǎn)研究問題。該方法利用人際間的會(huì)話信息對人際關(guān)系進(jìn)行自動(dòng)化畫像。
背景技術(shù):
識別和了解人們之間的人際關(guān)系是社會(huì)計(jì)算中一個(gè)非常必要的問題,它是許多相關(guān)研究如社區(qū)發(fā)現(xiàn)、影響力分析、鏈接預(yù)測、個(gè)性化推薦等的基礎(chǔ)。要對一個(gè)關(guān)系進(jìn)行畫像,可以有兩個(gè)基本層次,分別是關(guān)系的特性和關(guān)系的內(nèi)涵。其中,關(guān)系的特性指的是關(guān)系較為簡單和易于量化的基本屬性;而關(guān)系的內(nèi)涵則指的是兩個(gè)人之間的關(guān)系的內(nèi)容。
在當(dāng)前研究中,關(guān)系的內(nèi)涵建模主要表現(xiàn)為關(guān)系的類型識別。多數(shù)情況,這些類型是已知的,例如敵友、師生、論文合作等。在更一般的情況,多數(shù)研究將關(guān)系類型抽象為簡單的正負(fù)二元化類別。在這種思路下,關(guān)系的內(nèi)涵分析,轉(zhuǎn)化為關(guān)系的類型識別,進(jìn)而轉(zhuǎn)化為經(jīng)典的分類問題。
但是,這種基于已知類型和分類方法的關(guān)系內(nèi)涵分析不能夠充分滿足關(guān)系內(nèi)涵分析的需要。一方面,已知的關(guān)系類型是十分有限的,人們之間的關(guān)系內(nèi)涵往往十分復(fù)雜,在實(shí)際經(jīng)驗(yàn)中,往往很難用一個(gè)簡單的類型名稱來準(zhǔn)確刻畫兩個(gè)人之間的關(guān)系,而需要用一系列具體的描述來更為準(zhǔn)確的刻畫一個(gè)關(guān)系的內(nèi)涵。另一方面,即使是已知的關(guān)系類型,往往也可以具有不同的內(nèi)涵。例如同樣是朋友關(guān)系,即可能是工作伙伴,也可能是具有相同的興趣愛好。
由此可見,需要一種信息量更加豐富的方法,來實(shí)現(xiàn)關(guān)系的內(nèi)涵的語義化的刻畫。要實(shí)現(xiàn)這一點(diǎn),人際之間的會(huì)話信息是一個(gè)非常好的資源。
在社會(huì)語言學(xué)中,語言代碼不僅具有單純語言學(xué)上的符號意義,而且蘊(yùn)含著復(fù)雜的社會(huì)因素和深刻的文化意義,語言的符號體系既實(shí)現(xiàn)又控制著社會(huì)關(guān)系的結(jié)構(gòu)。社會(huì)語言學(xué)認(rèn)為社會(huì)結(jié)構(gòu)與語言結(jié)構(gòu)互相影響。薩丕爾-沃爾夫假設(shè)認(rèn)為語言結(jié)構(gòu)決定著人們對世界的看法,即語言影響思維,進(jìn)而思維決定行為與社會(huì)關(guān)系。
技術(shù)實(shí)現(xiàn)要素:
在本發(fā)明中,將嘗試通過提取會(huì)話信息中的頻繁項(xiàng)集,進(jìn)而挖掘頻繁項(xiàng)集中的主題來反映關(guān)系內(nèi)涵,來建立一種基于會(huì)話信息的人際關(guān)系自動(dòng)化畫像方法。
為了解決上述技術(shù)問題,本發(fā)明提出的一種基于人際間會(huì)話信息的人際關(guān)系自動(dòng)化畫像方法,包括以下步驟:
步驟一、定義會(huì)話雙方之間的會(huì)話信息集合:
P={P1,P2,...,Pn},P是指會(huì)話雙方之間的會(huì)話信息集合;其中,Pi是指會(huì)話信息集合中的某一條會(huì)話信息;當(dāng)Wi.sup>=min_sup時(shí),將會(huì)話信息集合P中的一個(gè)單詞集合Wi稱為一個(gè)頻繁項(xiàng);其中,Wi.sup表示會(huì)話信息集合P中一個(gè)單詞集合Wi的支持度,支持度為n表示在會(huì)話信息集合P中有n條信息包含單詞集合Wi;min_sup用來表示會(huì)話信息集合P中一個(gè)頻繁項(xiàng)的最小支持度;
步驟二、頻繁項(xiàng)集的挖掘:
采用FP-Growth算法在會(huì)話信息集合P中挖掘出一個(gè)頻繁項(xiàng)集。設(shè)會(huì)話信息集合P的大小為size,單位是kb,且會(huì)話集中共包含m條會(huì)話信息,則最小支持度的取值按照如下公式計(jì)算可得:
其中公式中的p可根據(jù)具體操作數(shù)據(jù)取0.2-0.5之間的值。除此之外,本發(fā)明還限制所述頻繁項(xiàng)集中頻繁項(xiàng)的長度為2到10。因?yàn)殚L度為1或者太長的頻繁項(xiàng)難以說明頻繁項(xiàng)的含義。
步驟三、提取會(huì)話信息中的主題,有下述兩種方法之一:
方法一是將步驟二挖掘出的頻繁項(xiàng)集中的頻繁項(xiàng)按照頻繁項(xiàng)的支持度進(jìn)行降序排列,然后提取前3-5個(gè)頻繁項(xiàng)作為主題,這些主題組合后即為會(huì)話信息中的主題;
方法二包括以下兩步驟:
步驟2-1、頻繁項(xiàng)集聚類:
首先,進(jìn)行相似頻繁項(xiàng)的過濾,過濾掉所述頻繁項(xiàng)集中的所有子集和頻繁項(xiàng)集中相似度很高的交叉項(xiàng)得到重要頻繁項(xiàng)集;其中,交叉項(xiàng)指的是頻繁項(xiàng)集中有相同單詞的頻繁項(xiàng);F={F1,F2,...,Fm}為過濾前的頻繁項(xiàng)集,將重要頻繁項(xiàng)集初始化為Key_F=Φ,重要頻繁項(xiàng)集記為Key_F;對于進(jìn)行下述處理過程:
對于如果Fi是Fj的一個(gè)子集,將Fi從F移除;如果Fi是Fj的交叉項(xiàng),F(xiàn)i與Fj之間的Jacard相似度J(Fi,Fj)用以下公式計(jì)算:
J(Fi,Fj)=|Fi∩Fj|/|Fi∪Fj|
當(dāng)Fi與Fj之間的相似度大于0.5時(shí),將Fi從F中移除;如果對于J(Fi,Fj)均小于等于0.5時(shí),則將Fi添加至Key_F;
重復(fù)上述處理過程直至F=Key_F;此時(shí)Key_F中的項(xiàng)集即為過濾后的重要頻繁項(xiàng)集;
然后,計(jì)算過濾后的重要頻繁項(xiàng)集Key_F中包含的全部單詞在會(huì)話雙方會(huì)話信息集合P中的逆向文本頻率即idf值;利用所述idf值計(jì)算重要頻繁項(xiàng)集Key_F中任意兩個(gè)頻繁項(xiàng)之間的相似度,兩個(gè)頻繁項(xiàng)之間的相似度等于兩個(gè)頻繁項(xiàng)的相關(guān)文本集之間的相似度;其中,相關(guān)文本集用以下方法求得:
通過計(jì)算過濾前的頻繁項(xiàng)集中的Fi與會(huì)話信息集合P中的某一條會(huì)話信息Pi之間的相似度,如果Fi與Pi之間的相似度大于c,c的取值范圍為0.05-0.2;則將Pi添加至Fi的相關(guān)文本集當(dāng)中,最終,F(xiàn)i的相關(guān)文本集用Ri進(jìn)行表示,F(xiàn)i與Pi之間的相似度由如下公式求得:
其中,tfij指的是Fi中的第j個(gè)單詞在Pi中出現(xiàn)的頻率,idfij指的Fi中的第j個(gè)單詞的逆向文本頻率,得到每個(gè)頻繁項(xiàng)的相關(guān)文本集之后,利用相關(guān)文本集計(jì)算頻繁項(xiàng)之間的相似度,計(jì)算公式如下:
得到任意兩個(gè)頻繁項(xiàng)之間的相似度之后,進(jìn)行聚類個(gè)數(shù)的估計(jì)。
設(shè)定有一頻繁項(xiàng)集簇,并將該頻繁項(xiàng)集簇初始化為C={C1},C1={F1},F(xiàn)1是從Key_F中隨機(jī)選擇的一個(gè)頻繁項(xiàng);
對于比較Fi和C中當(dāng)前所有的簇之間的相似度,頻繁項(xiàng)Fi和簇Ck之間的相似度計(jì)算如下:
如果Csim是與Fi相似度最高的那個(gè)簇而且sim(Fi,Csim)>b,b=0.2,則將Fi添加至Csim;如果sim(Fi,Csim)<=b,則創(chuàng)建一個(gè)新的簇并把Fi添加至新簇;
然后,把C中的簇按照簇的大小進(jìn)行降序排列,即Csort={C(1),C(2),...,C(n)};依次累加C(i)中的頻繁項(xiàng)個(gè)數(shù)直至累加和超過Key_F中總的頻繁項(xiàng)個(gè)數(shù)的80%;如果k是最后一個(gè)在Csort中累加的下標(biāo),則k就是最終的預(yù)估聚類個(gè)數(shù);得到預(yù)估的聚類個(gè)數(shù),使用K-means算法對Key_F中的所有頻繁項(xiàng)進(jìn)行聚類;
步驟2-2、提取聚類后的主題:
通過抽取聚類之后的每個(gè)類中的主題詞,將這些主題詞組合作為該類的主題,抽取主題詞時(shí),考慮的因素包括詞的tf值、簇內(nèi)支持度和簇間區(qū)分度;
對于每個(gè)類中的所有單詞,按照如下公式計(jì)算每一個(gè)詞的重要程度:
在此公式中,第一項(xiàng)、第二項(xiàng)、第三項(xiàng)分別表示詞的tf值、簇內(nèi)支持度和簇間區(qū)分度。其中,Wki指的是第k個(gè)類中的第i個(gè)單詞,tfki指的是第k個(gè)類中的第i個(gè)單詞的的tf值;|Fki|指的是在第k個(gè)類中包含單詞wki的頻繁項(xiàng)個(gè)數(shù);|Fk|指的是第k個(gè)類中總的頻繁項(xiàng)個(gè)數(shù);|Fi|指的是在Key_F中包含單詞Wki的頻繁項(xiàng)個(gè)數(shù);|F|指的是Key_F中總的頻繁項(xiàng)個(gè)數(shù);|Ci|指的是包含單詞Wki的類的個(gè)數(shù);|C|指的是類的總數(shù);
得到每個(gè)單詞的重要程度之后,把每個(gè)類中的單詞按照其重要程度進(jìn)行降序排列,然后選擇前3~6個(gè)的單詞作為主題詞,這些主題詞的組合即為該類中的主題;
步驟四、確定會(huì)話雙方的關(guān)系內(nèi)涵:
在本發(fā)明中,關(guān)系內(nèi)涵即定義為主題,通過對主題即關(guān)系內(nèi)涵的理解可以幫助理解會(huì)話雙方的關(guān)系。
附圖說明
圖1是本發(fā)明方法流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)描述,所描述的具體實(shí)施例僅對本發(fā)明進(jìn)行解釋說明,并不用以限制本發(fā)明。
本發(fā)明一種基于人際間會(huì)話信息的人際關(guān)系自動(dòng)化畫像方法,主要是通過提取會(huì)話雙方會(huì)話信息中的頻繁項(xiàng)集,進(jìn)而挖掘頻繁項(xiàng)集中的主題來反映關(guān)系內(nèi)涵,具體步驟如下:
步驟一、定義會(huì)話雙方之間的會(huì)話信息集合:
P={P1,P2,...,Pn},P是指會(huì)話雙方之間的會(huì)話信息集合;其中,Pi是指會(huì)話信息集合中的某一條會(huì)話信息;當(dāng)Wi.sup>=min_sup時(shí),將會(huì)話信息集合P中的一個(gè)單詞集合Wi稱為一個(gè)頻繁項(xiàng);其中,Wi.sup表示會(huì)話信息集合P中一個(gè)單詞集合Wi的支持度,支持度為n表示在會(huì)話信息集合P中有n條信息包含單詞集合Wi;min_sup用來表示會(huì)話信息集合P中一個(gè)頻繁項(xiàng)的最小支持度;
步驟二、頻繁項(xiàng)集的挖掘:
采用FP-Growth算法在會(huì)話信息集合P中挖掘出一個(gè)頻繁項(xiàng)集。設(shè)會(huì)話信息集合P的大小為size,單位是kb,且會(huì)話集中共包含m條會(huì)話信息,則最小支持度的取值按照如下公式計(jì)算可得:
其中公式中的p可根據(jù)具體操作數(shù)據(jù)取0.2-0.5之間的值。除此之外,本發(fā)明還限制所述頻繁項(xiàng)集中頻繁項(xiàng)的長度為2到10。因?yàn)殚L度為1或者太長的頻繁項(xiàng)難以說明頻繁項(xiàng)的含義。
步驟三、提取會(huì)話信息中的主題,有下述兩種方法之一:
方法一是將步驟二挖掘出的頻繁項(xiàng)集中的頻繁項(xiàng)按照頻繁項(xiàng)的支持度進(jìn)行降序排列,然后提取前3-5個(gè)頻繁項(xiàng)作為主題,這些主題組合后即為會(huì)話信息中的主題;
方法二包括以下兩步驟:
步驟2-1、頻繁項(xiàng)集聚類:
首先,進(jìn)行相似頻繁項(xiàng)的過濾,過濾掉所述頻繁項(xiàng)集中的所有子集和頻繁項(xiàng)集中相似度很高的交叉項(xiàng)得到重要頻繁項(xiàng)集;其中,交叉項(xiàng)指的是頻繁項(xiàng)集中有相同單詞的頻繁項(xiàng);F={F1,F2,...,Fm}為過濾前的頻繁項(xiàng)集,將重要頻繁項(xiàng)集初始化為Key_F=Φ,重要頻繁項(xiàng)集記為Key_F;對于進(jìn)行下述處理過程:
對于如果Fi是Fj的一個(gè)子集,將Fi從F移除;如果Fi是Fj的交叉項(xiàng),F(xiàn)i與Fj之間的Jacard相似度J(Fi,Fj)用以下公式計(jì)算:
J(Fi,Fj)=|Fi∩Fj|/|Fi∪Fj|
當(dāng)Fi與Fj之間的相似度大于0.5時(shí),將Fi從F中移除;如果對于J(Fi,Fj)均小于等于0.5時(shí),則將Fi添加至Key_F;
重復(fù)上述處理過程直至F=Key_F;此時(shí)Key_F中的項(xiàng)集即為過濾后的重要頻繁項(xiàng)集;
然后,計(jì)算過濾后的重要頻繁項(xiàng)集Key_F中包含的全部單詞在會(huì)話雙方會(huì)話信息集合P中的逆向文本頻率即idf值;利用所述idf值計(jì)算重要頻繁項(xiàng)集Key_F中任意兩個(gè)頻繁項(xiàng)之間的相似度,兩個(gè)頻繁項(xiàng)之間的相似度等于兩個(gè)頻繁項(xiàng)的相關(guān)文本集之間的相似度;其中,相關(guān)文本集用以下方法求得:
通過計(jì)算過濾前的頻繁項(xiàng)集中的Fi與會(huì)話信息集合P中的某一條會(huì)話信息Pi之間的相似度,如果Fi與Pi之間的相似度大于c,c的取值范圍為0.05-0.2;則將Pi添加至Fi的相關(guān)文本集當(dāng)中,最終,F(xiàn)i的相關(guān)文本集用Ri進(jìn)行表示,F(xiàn)i與Pi之間的相似度由如下公式求得:
其中,tfij指的是Fi中的第j個(gè)單詞在Pi中出現(xiàn)的頻率,idfij指的Fi中的第j個(gè)單詞的逆向文本頻率,得到每個(gè)頻繁項(xiàng)的相關(guān)文本集之后,利用相關(guān)文本集計(jì)算頻繁項(xiàng)之間的相似度,計(jì)算公式如下:
得到任意兩個(gè)頻繁項(xiàng)之間的相似度之后,進(jìn)行聚類個(gè)數(shù)的估計(jì)。
設(shè)定有一頻繁項(xiàng)集簇,并將該頻繁項(xiàng)集簇初始化為C={C1},C1={F1},F(xiàn)1是從Key_F中隨機(jī)選擇的一個(gè)頻繁項(xiàng);
對于比較Fi和C中當(dāng)前所有的簇之間的相似度,頻繁項(xiàng)Fi和簇Ck之間的相似度計(jì)算如下:
如果Csim是與Fi相似度最高的那個(gè)簇而且sim(Fi,Csim)>b,b=0.2,則將Fi添加至Csim;如果sim(Fi,Csim)<=b,則創(chuàng)建一個(gè)新的簇并把Fi添加至新簇;
然后,把C中的簇按照簇的大小進(jìn)行降序排列,即Csort={C(1),C(2),...,C(n)};依次累加C(i)中的頻繁項(xiàng)個(gè)數(shù)直至累加和超過Key_F中總的頻繁項(xiàng)個(gè)數(shù)的80%;如果k是最后一個(gè)在Csort中累加的下標(biāo),則k就是最終的預(yù)估聚類個(gè)數(shù);得到預(yù)估的聚類個(gè)數(shù),使用K-means算法對Key_F中的所有頻繁項(xiàng)進(jìn)行聚類;
步驟2-2、提取聚類后的主題:
通過抽取聚類之后的每個(gè)類中的主題詞,將這些主題詞組合作為該類的主題,抽取主題詞時(shí),考慮的因素包括詞的tf值、簇內(nèi)支持度和簇間區(qū)分度;
對于每個(gè)類中的所有單詞,按照如下公式計(jì)算每一個(gè)詞的重要程度:
在此公式中,第一項(xiàng)、第二項(xiàng)、第三項(xiàng)分別表示詞的tf值、簇內(nèi)支持度和簇間區(qū)分度。其中,Wki指的是第k個(gè)類中的第i個(gè)單詞,tfki指的是第k個(gè)類中的第i個(gè)單詞的的tf值;|Fki|指的是在第k個(gè)類中包含單詞wki的頻繁項(xiàng)個(gè)數(shù);|Fk|指的是第k個(gè)類中總的頻繁項(xiàng)個(gè)數(shù);|Fi|指的是在Key_F中包含單詞Wki的頻繁項(xiàng)個(gè)數(shù);|F|指的是Key_F中總的頻繁項(xiàng)個(gè)數(shù);|Ci|指的是包含單詞Wki的類的個(gè)數(shù);|C|指的是類的總數(shù);
得到每個(gè)單詞的重要程度之后,把每個(gè)類中的單詞按照其重要程度進(jìn)行降序排列,然后選擇前3~6個(gè)的單詞作為主題詞,這些主題詞的組合即為該類中的主題;
步驟四、確定會(huì)話雙方的關(guān)系內(nèi)涵:
在本發(fā)明中,關(guān)系內(nèi)涵即定義為主題,通過對主題即關(guān)系內(nèi)涵的理解可以幫助理解會(huì)話雙方的關(guān)系。
本發(fā)明實(shí)驗(yàn)材料1:安然郵件數(shù)據(jù)集實(shí)驗(yàn)
首先采集了安然公司的郵件數(shù)據(jù),共得到1078對用戶之間的郵件集合。該數(shù)據(jù)集的特點(diǎn)是:規(guī)范度較強(qiáng)、會(huì)話信息較長。
利用主題反映關(guān)系內(nèi)涵,利用本發(fā)明方法在用戶對的郵件集合中抽取主題,一些主題示例如下表1所示:
表1、利用安然數(shù)據(jù)集的交互郵件內(nèi)容主題進(jìn)行人際關(guān)系畫像
由于沒有關(guān)系內(nèi)涵的明確標(biāo)準(zhǔn)答案,因此,通過人工閱讀用戶對之間完整的郵件序列來理解他們的關(guān)系,進(jìn)而考察自動(dòng)抽取的主題是否與人的理解相符。比如,根據(jù)閱讀和理解第一對用戶對的郵件信息,推測他們是關(guān)于IT和網(wǎng)絡(luò)的工作關(guān)系,其中一個(gè)人是首席技術(shù)官。由實(shí)驗(yàn)結(jié)果可知,提取的主題基本上可以反應(yīng)這一關(guān)系內(nèi)涵。根據(jù)表格中的例子顯示,這個(gè)數(shù)據(jù)集上的人物關(guān)系大都是有一些特定區(qū)別的工作關(guān)系,本發(fā)明方法可以得到更多關(guān)于用戶關(guān)系內(nèi)涵的細(xì)節(jié)。然而,有一些主題詞是無意義的,比如‘cc’、‘Enron’。許多關(guān)系內(nèi)涵隱藏在互動(dòng)語言的深層語義中,不容易從主題詞中刻畫。為了描述更為豐富的社會(huì)關(guān)系,在微博數(shù)據(jù)集上再次做了實(shí)驗(yàn)。
本發(fā)明實(shí)驗(yàn)材料2:微博數(shù)據(jù)集實(shí)驗(yàn)
從新浪微博上爬取了2015.7.1-2016.7.15間的來自4296個(gè)用戶之間的2263對關(guān)系的互相評論和轉(zhuǎn)發(fā)內(nèi)容,并爬取了這4296個(gè)用戶的用戶屬性。將用戶對之間的互相評論和轉(zhuǎn)發(fā)內(nèi)容作為它們的交互語言集合并抽取了集合內(nèi)容多余15條的用戶對來做實(shí)驗(yàn),共得到105對用戶對。該數(shù)據(jù)集的特點(diǎn)是:會(huì)話信息較短、關(guān)系類型豐富。
利用主題反映關(guān)系內(nèi)涵,利用本發(fā)明方法在用戶對的交互語言集合中抽取主題,一些主題示例如下表2所示:
表2、利用微博數(shù)據(jù)集的互相評論和轉(zhuǎn)發(fā)內(nèi)容主題進(jìn)行人際關(guān)系畫像
由于沒有關(guān)系內(nèi)涵的明確標(biāo)準(zhǔn)答案,因此通過人工閱讀用戶對之間完整的互評和轉(zhuǎn)發(fā)內(nèi)容來理解他們的關(guān)系,進(jìn)而考察自動(dòng)抽取的主題是否與人的理解相符。比如,根據(jù)閱讀和理解第二對用戶對的郵件信息,推測他們是有著同樣興趣的朋友關(guān)系,他們都是表的愛好者。由實(shí)驗(yàn)結(jié)果可知,提取的主題基本上可以反應(yīng)這一關(guān)系內(nèi)涵。根據(jù)表格中的例子顯示,本發(fā)明方法可以幫助得到更多關(guān)于用戶關(guān)系內(nèi)涵的細(xì)節(jié)。然而,有一些主題是有歧義的,比如第5對用戶,很難通過主題來分辨她們是剛生完孩子的母親和于嫂的關(guān)系還是兩位剛生完孩子的母親關(guān)系。
綜上,基于主題的人際關(guān)系畫像方法適合于作為人際關(guān)系畫像的輔助手段。盡管上面結(jié)合附圖對本發(fā)明進(jìn)行了描述,但是本發(fā)明并不局限于上述的具體實(shí)施方式,上述的具體實(shí)施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨的情況下,還可以做出很多變形,這些均屬于本發(fā)明的保護(hù)之內(nèi)。