KR102052823B1 - Topic model automation method and apparatus using latent dirichlet allocation - Google Patents
Topic model automation method and apparatus using latent dirichlet allocation Download PDFInfo
- Publication number
- KR102052823B1 KR102052823B1 KR1020180052080A KR20180052080A KR102052823B1 KR 102052823 B1 KR102052823 B1 KR 102052823B1 KR 1020180052080 A KR1020180052080 A KR 1020180052080A KR 20180052080 A KR20180052080 A KR 20180052080A KR 102052823 B1 KR102052823 B1 KR 102052823B1
- Authority
- KR
- South Korea
- Prior art keywords
- topic
- similarity
- sentence
- association
- labeling
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
잠재 디리클레 할당을 이용한 토픽 모델링 방법 및 장치가 개시된다. 일 실시예에 따른 토픽 모델링 방법은, 객체로부터 토픽을 추출하여 상기 토픽의 분포와 관련된 사전 확률을 최적화하는 단계와, 상기 사전 확률에 기초하여 추출된 상기 토픽을 분할 또는 합병함으로써 상기 토픽을 정제하는 단계와, 정제된 토픽을 대표하는 문장을 추출함으로써 상기 정제된 토픽을 자동으로 레이블링(labeling)하는 단계를 포함한다.Topic modeling methods and apparatus using latent Dirichlet allocation are disclosed. According to an embodiment, a topic modeling method may include: extracting a topic from an object to optimize a prior probability related to a distribution of the topic, and refining the topic by dividing or merging the extracted topic based on the prior probability And automatically labeling the refined topic by extracting a sentence representative of the refined topic.
Description
아래 실시예들은 잠재 디리클레 할당을 이용한 토픽 모델 자동화 방법 및 장치에 관한 것이다.The embodiments below relate to a method and apparatus for topic model automation using latent Dirichlet allocation.
능동 통계적인 토픽 모델링 기법 중 하나인 LDA(Latent Dirichlet Allocation)는 텍스트 마이닝에서 많이 쓰이는 기법 중 하나이다. LDA는 대용량 문서를 요약하고 클러스터링 하는데 많이 사용된다. 뿐만 아니라, LDA는 다양한 분야에서 유용하게 사용된다. 대표적으로 기술경영, 마케팅, 투자, 기술변화 등에 많이 쓰이고, 최근에는 바이오 분석에도 이용되고 있다.Late Dirichlet Allocation (LDA), one of the active statistical topic modeling techniques, is one of the popular techniques for text mining. LDA is often used to summarize and cluster large documents. In addition, LDA is useful in various fields. It is typically used for technology management, marketing, investment, technology change, and recently, it is also used for bio analysis.
하지만 이처럼 다양한 분야에 사용되는 LDA는 통계학자들이 이론적으로 만든 방법이기 때문에 일반 사용자가 사용하기 힘들다는 단점이 존재한다. 첫째, LDA는 베이지안(Bayesian) 통계 방법론에 기초하기 때문에 사전 확률인 α와 β의 초기 값이 미리 정해져야 된다.However, the LDA used in various fields has a disadvantage that it is difficult for the general user because it is a method that the statisticians theoretically made. First, since LDA is based on Bayesian statistical methodology, the initial values of α and β, which are prior probabilities, must be determined in advance.
기존에는 초기 값을 결정하기 위해 디폴트(default) 값을 사용하거나 도메인 전문가가 임의로 초기 값을 결정한다. 이러한 방법의 경우 대용량 문서에서 정확한 사전 확률을 찾기란 쉽지 않고, 도메인 전문가의 주관적 판단에 의해 결정된 사전 확률은 LDA의 결과에 부정적인 영향을 끼친다.Traditionally, the default value is used to determine the initial value or a domain expert arbitrarily determines the initial value. In this method, it is not easy to find accurate prior probabilities in large documents, and the prior probabilities determined by subjective judgments of domain experts have a negative effect on the results of LDA.
둘째, LDA는 통계적 방법에 의해 토픽이 추출되기 때문에 최적의 사전 확률을 사용한다 하더라도 토픽 결과가 부정확하거나 그 의미를 알 수 없는 경우가 많다. 그 이유는 정량적이고 확률적인 방법에 의해 생성된 토픽 결과 중 중복되거나 애매모호한 토픽들이 많이 발생하기 때문이다. 따라서 LDA의 결과를 자동으로 후처리(post-processing)하여 토픽 결과들을 정제(cleaning) 하는 것이 필요하다.Second, since LDA extracts topics by statistical methods, even if the optimal prior probability is used, the topic results are often inaccurate or unknown. This is because many of the topic results generated by the quantitative and probabilistic methods generate duplicate or ambiguous topics. Therefore, it is necessary to automatically post-process the results of the LDA to clean the topic results.
셋째, 입력으로 주어진 대용량 텍스트 문서 코퍼스(corpus) 에 대한 도메인 지식이 부족할 경우, 결과로 나온 각 토픽의 의미를 판단하는 것이 쉽지 않으며 추상적인 수준의 이해만 가능하다. 즉, 대용량 텍스트 문서에서는 LDA를 사용하여 일반적이거나 상식적인 내용만을 토픽을 통해 유추할 수 있다. 따라서 토픽의 의미를 자동으로 알려주는 토픽 레이블링(topic labeling) 방법이 필요하다.Third, if there is insufficient domain knowledge of the large text document corpus given as input, it is not easy to determine the meaning of each resulting topic, only an abstract level of understanding is possible. That is, in large text documents, LDA can be used to infer only general or common sense content through the topic. Therefore, there is a need for a topic labeling method that automatically indicates the meaning of the topic.
아래 실시예들은 잠재 디리클레 할당을 이용한 토픽 모델링을 자동화하는 기술을 제공할 수 있다.The embodiments below can provide techniques for automating topic modeling using latent Dirichlet allocation.
일 실시예에 따른 토픽 모델링 방법은, 객체로부터 토픽을 추출하여 상기 토픽의 분포와 관련된 사전 확률을 최적화하는 단계와, 상기 사전 확률에 기초하여 추출된 상기 토픽을 분할 또는 합병함으로써 상기 토픽을 정제하는 단계와, 정제된 토픽을 대표하는 문장을 추출함으로써 상기 정제된 토픽을 자동으로 레이블링(labeling)하는 단계를 포함한다.According to an embodiment, a topic modeling method may include: extracting a topic from an object to optimize a prior probability related to a distribution of the topic, and refining the topic by dividing or merging the extracted topic based on the prior probability And automatically labeling the refined topic by extracting a sentence representative of the refined topic.
상기 최적화하는 단계는, 상기 객체로부터 상기 토픽을 추출하는 단계와, 상기 토픽에 대하여 상기 사전 확률의 변화에 따른 평균 토픽 일관성(coherence)을 계산하는 단계와, 상기 평균 토픽 일관성에 기초하여 최적화된 사전 확률을 채택하는 단계를 포함할 수 있다.The optimizing may include extracting the topic from the object, calculating an average topic coherence according to the change of the prior probability for the topic, and optimizing the dictionary based on the average topic consistency. Employing a probability.
상기 계산하는 단계는, 하기 수학식에 기초하여 상기 평균 토픽 일관성을 계산하는 단계를 포함할 수 있다.The calculating may include calculating the average topic consistency based on the following equation.
[수학식][Equation]
여기서, TC는 토픽 일관성을 의미하고, sim(wl, wf) 토픽 내의 연관어 wl, wf의 의미 유사도(semantic similarity) 값을 의미함.Here, TC means topic consistency, and means semantic similarity values of the related words w l and w f in the sim (w l , w f ) topic.
상기 정제하는 단계는, 상기 토픽에 포함된 연관어들의 의미 유사도에 기초하여 상기 토픽을 분할하는 단계 또는 상기 연관어들로부터 계산한 토픽 간 유사도에 기초하여 상기 토픽을 합병하는 단계를 포함할 수 있다.The refining may include dividing the topic based on semantic similarity of the related words included in the topic or merging the topic based on the similarity between topics calculated from the related words. .
상기 분할하는 단계는, 상기 연관어들을 군집화하여 복수의 군집을 생성하는 단계와, 각각의 군집 내부의 연관어들 간의 의미 유사도를 평균하여 내부 유사도(within-cluster similarity) 를 계산하는 단계와, 상이한 군집의 연관어들 간의 의미 유사도를 평균하여 교차 유사도(cross-clusters similarity) 를 계산하는 단계와, 상기 내부 유사도와 상기 교차 유사도에 기초하여 복수의 군집을 상이한 토픽으로 분할하는 단계를 포함할 수 있다.The dividing may be performed by clustering the related words to generate a plurality of clusters, calculating mean similarity between related words within each cluster, and calculating a within-cluster similarity. Calculating cross-clusters similarity by averaging the semantic similarities between the association terms of the clusters, and dividing the plurality of clusters into different topics based on the internal similarity and the cross similarity. .
상기 합병하는 단계는, 상기 연관어들에 기초하여 상기 토픽과 상기 토픽에 대한 문장 간의 연관성을 계산하는 단계와, 상기 연관성에 기초하여 상기 연관어들을 상기 문장으로 대체하는 단계와, 상기 문장과 상이한 토픽에 포함된 문장 간의 코사인 유사도(cosine similarity)를 계산하여 이분 그래프(Bipartite Graph)를 생성하는 단계와, 상기 토픽과 상기 상이한 토픽 간의 토픽 유사도를 계산하는 단계와, 상기 토픽 유사도에 기초하여 상기 토픽과 상기 상이한 토픽을 합병하는 단계를 포함할 수 있다.The merging may include calculating an association between the topic and a sentence for the topic based on the association words, replacing the association words with the sentence based on the association, and different from the sentence. Calculating a bipartite graph by calculating cosine similarity between sentences included in the topic, calculating a topic similarity between the topic and the different topic, and based on the topic similarity And merging the different topics.
상기 레이블링하는 단계는, 상기 토픽과 연관성이 높은 문장을 후보 문장으로 채택하는 단계와, 상기 후보 문장에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽을 대표하는 문장을 추출하여 상기 토픽을 레이블링하는 단계를 포함할 수 있다.The labeling may include adopting a sentence highly related to the topic as a candidate sentence, and extracting a sentence representing the topic based on a probability distribution of related words included in the candidate sentence to label the topic. It may include a step.
상기 채택하는 단계는, 상기 토픽에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽으로부터 확률값이 작은 연관어들을 제거하는 단계와, 상기 토픽에 포함된 문장과 상기 토픽에 포함된 연관어의 쌍을 생성하는 단계와, 상기 쌍에 기초하여 각각의 연관어와 쌍을 이루는 문장의 개수를 계산하는 단계와, 상기 개수에 기초하여 상기 쌍을 제거하여 상기 후보 문장을 채택하는 단계를 포함할 수 있다.The adopting may include removing association words having a small probability value from the topic based on a probability distribution of the association words included in the topic, and comparing a sentence included in the topic and a pair of association words included in the topic. Generating the number of sentences paired with each associated word based on the pair; and removing the pair based on the number to adopt the candidate sentence.
상기 레이블링하는 단계는, 상기 후보 문장에 포함된 연관어들의 확률 분포 및 상기 쌍에 기초하여 상기 토픽과 상기 후보 문장 간의 레이블링 유사도를 계산하는 단계와, 상기 레이블링 유사도에 기초하여 상기 토픽에 대응하는 대표 문장을 추출하는 단계를 포함할 수 있다.The labeling may include calculating a labeling similarity between the topic and the candidate sentence based on the probability distribution of the related words included in the candidate sentence and the pair, and representing the topic corresponding to the topic based on the labeling similarity. And extracting the sentence.
상기 레이블링 유사도를 계산하는 단계는, 하기 수학식에 기초하여 상기 레이블링 유사도를 계산하는 단계를 포함할 수 있다.The calculating of the labeling similarity may include calculating the labeling similarity based on the following equation.
[수학식][Equation]
여기서, score는 상기 토픽 T와 상기 후보 문장 s의 상기 레이블링 유사도(similarity between T and s)를 의미하고, t는 상기 토픽 내의 단어를 의미하고, α는 각 항의 중요도를 나타내는 가중치를 의미하고, P(t)는 토픽 단어 t에 대한 확률 값을 의미하고, wordnet(w', T)는 s를 구성하는 단어 중 T에 없는 단어 w'와 토픽 T에 있는 각 단어 간의 워드넷 기반의 의미 유사도(semantic similarity based on WordNet)를 의미함.일 실시예에 따른 토픽 모델링 장치는, 객체를 수신하는 수신기와, 상기 객체로부터 토픽을 추출하고, 정제하여 상기 토픽을 자동으로 레이블링하는 컨트롤러를 포함하고, 상기 컨트롤러는, 상기 객체로부터 상기 토픽을 추출하여 상기 토픽의 분포와 관련된 사전 확률을 최적화하는 사전 확률 추출기와, 상기 사전 확률에 기초하여 추출된 상기 토픽을 분할 또는 합병함으로써 상기 토픽을 정제하는 토픽 정제기와, 정제된 토픽을 대표하는 문장을 추출함으로써 상기 정제된 토픽을 자동으로 레이블링(labeling)하는 레이블러(labeler)를 포함할 수 있다.Here, score means the labeling similarity between the topic T and the candidate sentence s (similarity between T and s), t means a word within the topic, and α means a weight indicating the importance of each term, P (t) denotes a probability value for the topic word t, and wordnet (w ', T) is a wordnet-based semantic similarity between the words constituting s that are not in T and each word in topic T ( semantic similarity based on WordNet) A topic modeling apparatus according to an embodiment includes a receiver for receiving an object, a controller for automatically extracting and refining a topic from the object, and automatically labeling the topic, The controller is configured to extract a topic from the object to optimize a prior probability associated with a distribution of the topic, and to divide or extract the topic extracted based on the prior probability. It may include a topic refiner for refining the topic by merging, and a labeler for automatically labeling the refined topic by extracting sentences representing the refined topic.
상기 사전 확률 추출기는, 상기 객체로부터 상기 토픽을 추출하고, 상기 토픽에 대하여 상기 사전 확률의 변화에 따른 평균 토픽 일관성(coherence)을 계산하고, 상기 평균 토픽 일관성에 기초하여 최적화된 사전 확률을 채택할 수 있다.The prior probability extractor extracts the topic from the object, calculates an average topic coherence for the topic according to the change of the prior probability, and adopts an optimized prior probability based on the average topic consistency. Can be.
상기 사전 확률 추출기는, 하기 수학식에 기초하여 상기 평균 토픽 일관성을 계산할 수 있다.The prior probability extractor may calculate the average topic consistency based on the following equation.
[수학식] [Equation]
여기서, TC는 토픽 일관성을 의미하고, sim(wl, wf) 토픽 내의 연관어 wl, wf의 의미 유사도(semantic similarity)값을 의미함.Here, TC means topic consistency and semantic similarity value of the related words w l and w f in the sim (w l , w f ) topic.
상기 토픽 정제기는, 상기 토픽 내에 포함된 연관어들의 의미 유사도에 기초하여 상기 토픽을 분할하거나 상기 연관어들에 기초한 상기 토픽 사이의 유사도에 기초하여 상기 토픽을 합병할 수 있다.The topic refiner may split the topic based on semantic similarity of related words included in the topic or merge the topics based on similarity between the topics based on the related words.
상기 토픽 정제기는, 상기 연관어들을 군집화하여 복수의 군집을 생성하고, 각각의 군집 내부의 연관어들 간의 의미 유사도를 평균하여 내부 유사도를 계산하고, 상이한 군집의 연관어들 간의 의미 유사도를 평균하여 교차 유사도를 계산하고, 상기 내부 유사도와 상기 교차 유사도에 기초하여 복수의 군집을 상이한 토픽으로 분할할 수 있다.The topic refiner clusters the related words to generate a plurality of clusters, calculates internal similarities by averaging semantic similarities between related words within each cluster, and averages similarity between related words of different clusters. Cross similarity may be calculated and a plurality of clusters may be divided into different topics based on the internal similarity and the cross similarity.
상기 토픽 정제기는, 상기 연관어들에 기초하여 상기 토픽과 상기 토픽에 대한 문장 간의 연관성을 계산하고, 상기 연관성에 기초하여 상기 연관어들을 상기 문장으로 대체하고, 상기 문장과 상이한 토픽에 포함된 문장 간의 코사인 유사도를 계산하여 이분 그래프(Bipartite Graph)를 생성하고, 상기 토픽과 상기 상이한 토픽 간의 토픽 유사도를 계산하고, 상기 토픽 유사도에 기초하여 상기 토픽과 상기 상이한 토픽을 합병할 수 있다.The topic refiner calculates an association between the topic and a sentence for the topic based on the association words, replaces the association words with the sentence based on the association, and includes sentences included in a topic different from the sentence. The cosine similarity of the liver may be calculated to generate a bipartite graph, the topic similarity between the topic and the different topic may be calculated, and the topic and the different topic may be merged based on the topic similarity.
상기 레이블러는, 상기 토픽과 연관성이 높은 문장을 후보 문장으로 채택하고, 상기 후보 문장에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽을 대표하는 문장을 추출하여 상기 토픽을 레이블링할 수 있다.The labeler may select a sentence highly related to the topic as a candidate sentence, and extract the sentence representing the topic based on a probability distribution of related words included in the candidate sentence to label the topic.
상기 레이블러는, 상기 토픽에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽으로부터 확률값이 작은 연관어들을 제거하고, 상기 토픽에 포함된 문장과 상기 토픽에 포함된 연관어의 쌍을 생성하고, 상기 쌍에 기초하여 각각의 연관어와 쌍을 이루는 문장의 개수를 계산하고, 상기 개수에 기초하여 상기 쌍을 제거하여 상기 후보 문장을 채택할 수 있다.The labeler removes association words having a small probability value from the topic based on a probability distribution of the association words included in the topic, generates a pair of sentences included in the topic and an association word included in the topic, The candidate sentence may be adopted by calculating the number of sentences paired with each related word based on the pair, and removing the pair based on the number.
상기 레이블러는, 상기 후보 문장에 포함된 연관어들의 확률 분포 및 상기 쌍에 기초하여 상기 토픽과 상기 후보 문장 간의 레이블링 유사도를 계산하고, 상기 레이블링 유사도에 기초하여 상기 토픽에 대응하는 대표 문장을 추출할 수 있다.The labeler calculates a labeling similarity between the topic and the candidate sentence based on a probability distribution of the related words included in the candidate sentence and the pair, and extracts a representative sentence corresponding to the topic based on the labeling similarity. can do.
상기 레이블러는, 하기 수학식에 기초하여 상기 레이블링 유사도를 계산할 수 있다.The labeler may calculate the labeling similarity based on the following equation.
[수학식] [Equation]
여기서, score는 상기 토픽 T와 상기 후보 문장 s의 상기 레이블링 유사도(similarity between T and s)를 의미하고, t는 상기 토픽 내의 단어를 의미하고, α는 각 항의 중요도를 나타내는 가중치를 의미하고, P(t)는 토픽 단어 t에 대한 확률 값을 의미하고, wordnet(w', T)는 s를 구성하는 단어 중 T에 없는 단어 w'와 토픽 T에 있는 각 단어 간의 워드넷 기반의 의미 유사도(semantic similarity based on WordNet)를 의미함.Here, score means the labeling similarity between the topic T and the candidate sentence s (similarity between T and s), t means a word within the topic, and α means a weight indicating the importance of each term, P (t) denotes a probability value for the topic word t, and wordnet (w ', T) is a wordnet-based semantic similarity between the words constituting s that are not in T and each word in topic T ( semantic similarity based on WordNet).
도 1은 토픽 모델링 장치의 개략적인 블록도를 나타낸다.
도 2는 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.
도 3은 도 1에 도시된 토픽 모델링 장치의 전체 동작의 예를 나타낸다.
도 4는 도 2에 도시된 사전 확률 추출기의 동작의 예를 나타낸다.
도 5는 도 2에 도시된 사전 확률 추출기가 토픽 일관성을 계산하는 동작의 예를 나타낸다.
도 6은 도 2에 도시된 사전 확률 추출기가 최적화된 사전 확률을 채택하는 동작의 예를 나타낸다.
도 7은 도 2에 도시된 토픽 정제기가 토픽을 분할하는 동작의 예를 나타낸다.
도 8은 도 2에 도시된 토픽 정제기가 연관어들을 군집화하는 동작의 예를 나타낸다.
도 9는 도 2에 도시된 토픽 정제기가 내부 유사도 및 교차 유사도를 계산하는 동작의 예를 나타낸다.
도 10은 도 2에 도시된 토픽 정제기가 토픽을 합병하는 동작의 예를 나타낸다.
도 11a는 도 2에 도시된 토픽 정제기가 토픽과 문장의 연관성을 계산하는 동작의 일 예를 나타낸다
도 11b는 도 2에 도시된 토픽 정제기가 토픽과 문장의 연관성을 계산하는 동작의 다른 예를 나타낸다.
도 11c는 도 2에 도시된 토픽 정제기가 토픽과 문장의 연관성을 계산하는 동작의 또 다른 예를 나타낸다.
도 12는 도 2에 도시된 토픽 정제기가 문장 간의 코사인 유사도를 계산하는 동작의 예를 나타낸다.
도 13은 도 2에 도시된 토픽 정제기가 이분 그래프를 생성하는 동작의 예를 나타낸다.
도 14는 도 2에 도시된 토픽 정제기가 토픽 간의 유사도를 계산하는 동작의 예를 나타낸다.
도 15는 도 2에 도시된 토픽 정제기가 토픽 간의 유사를 군집화한 결과의 예를 나타낸다.
도 16은 도 2에 도시된 레이블러가 토픽을 자동으로 레이블링 하는 동작의 예를 나타낸다.
도 17은 도 2에 도시된 레이블러가 후보 문장을 채택하는 동작의 예를 나타낸다.
도 18은 도 2에 도시된 레이블러가 토픽을 대표하는 문장을 추출하는 동작의 예를 나타낸다.
도 19는 도 1에 도시된 토픽 모델링 장치의 동작의 순서도를 나타낸다.1 shows a schematic block diagram of a topic modeling apparatus.
2 shows a schematic block diagram of the controller shown in FIG. 1.
3 shows an example of the overall operation of the topic modeling apparatus shown in FIG. 1.
4 shows an example of the operation of the prior probability extractor shown in FIG.
FIG. 5 shows an example of an operation in which the prior probability extractor shown in FIG. 2 calculates topic consistency.
FIG. 6 shows an example of an operation in which the prior probability extractor shown in FIG. 2 adopts the optimized prior probability.
FIG. 7 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 divides a topic.
FIG. 8 illustrates an example of an operation in which the topic refiner shown in FIG. 2 clusters association terms.
FIG. 9 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates internal similarity and cross similarity.
FIG. 10 shows an example of an operation in which the topic refiner illustrated in FIG. 2 merges a topic.
FIG. 11A illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates an association between a topic and a sentence.
FIG. 11B illustrates another example of an operation in which the topic refiner illustrated in FIG. 2 calculates an association between a topic and a sentence.
FIG. 11C illustrates another example in which the topic refiner illustrated in FIG. 2 calculates an association between a topic and a sentence.
FIG. 12 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates cosine similarity between sentences.
FIG. 13 shows an example of an operation in which the topic refiner illustrated in FIG. 2 generates a bipartite graph.
FIG. 14 shows an example of an operation in which the topic refiner illustrated in FIG. 2 calculates similarity between topics.
FIG. 15 shows an example of the results of the topic refiner shown in FIG. 2 clustering similarities between topics.
FIG. 16 illustrates an example of an operation in which the labeler illustrated in FIG. 2 automatically labels a topic.
FIG. 17 shows an example of an operation in which the labeler illustrated in FIG. 2 adopts a candidate sentence.
FIG. 18 illustrates an example of an operation in which the labeler illustrated in FIG. 2 extracts a sentence representing a topic.
19 is a flowchart of an operation of the topic modeling apparatus illustrated in FIG. 1.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, various changes may be made to the embodiments so that the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and substitutes for the embodiments are included in the scope of rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of description and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The terms are for the purpose of distinguishing one component from another component only, for example, without departing from the scope of the rights according to the concepts of the embodiment, the first component may be named a second component, and similarly The second component may also be referred to as the first component.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components regardless of reference numerals will be given the same reference numerals and duplicate description thereof will be omitted. In the following description of the embodiment, when it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.
도 1은 토픽 모델링 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a topic modeling apparatus.
도 1을 참조하면, 토픽 모델링 장치(Topic Modeling Apparatus, 10)는 객체로부터 토픽을 추출하고, 정제할 수 있다. 토픽 모델링 장치(10)는 정제한 토픽의 대표 문장들을 추출함으로써 토픽을 자동으로 레이블링(labeling)할 수 있다. 토픽 모델링 장치(10)는 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)을 이용하여 토픽을 추출할 수 있다.Referring to FIG. 1, a
객체는 문자로 구성된 정보의 집합을 의미할 수 있다. 객체는 서적, 인터넷 상의 글 등의 문서를 포함할 수 있다. 객체는 복수의 문장을 포함할 수 있다. 토픽은 토론하거나 쓸 수 있는 특정한 대상을 의미할 수 있다. 토픽은 복수의 문장을 포함할 수 있다. 문장은 복수의 단어를 포함할 수 있다.An object may mean a collection of information consisting of letters. Objects can include documents such as books and articles on the Internet. The object may include a plurality of sentences. Topics can mean specific objects that can be discussed or written. Topics may include a plurality of sentences. The sentence may include a plurality of words.
토픽 모델링 장치(10)는 통계학적 지식이나 도메인 지식이 부족한 일반 사용자가 LDA를 쉽게 사용할 수 있는 방법을 제공할 수 있다. 토픽 모델링 장치(10)는 입력으로 주어지는 대용량 텍스트 문서 집합에 대한 최적의 사전 확률 초기 값을 구하고, 정제되어 있지 않은 토픽 집합들을 자동으로 정제하여 최적의 토픽의 집합으로 구성할 수 있다. 토픽 모델링 장치(10)는 추출된 토픽의 의미를 쉽게 알 수 있는 레이블링을 자동으로 수행할 수 있다.The
토픽 모델링 장치(10)는 빅데이터 기술을 이용하여 표본이 아니라 모집단 전체를 대상으로 LDA를 빠른 시간 내에 실행하고 도메인 전문가가 아닌 일반 사용자도 쉽게 LDA를 실행할 수 있는 자동화된 토픽 모델링을 수행할 수 있다.The
토픽 모델링 장치(10)는 수신기(100) 및 컨트롤러(200)를 포함한다.The
수신기(100)는 객체를 수신할 수 있다. 수신기(100)는 수신한 객체를 컨트롤러(200)로 출력할 수 있다.The
컨트롤러(200)는 객체로부터 토픽을 추출하고, 정제하여 토픽을 자동으로 레이블링할 수 있다.The
도 2는 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.2 shows a schematic block diagram of the controller shown in FIG. 1.
도 2를 참조하면, 컨트롤러(200)는 사전 확률 추출기(210), 토픽 정제기(230) 및 레이블러(250)를 포함할 수 있다.Referring to FIG. 2, the
사전 확률 추출기(210)는 객체로부터 토픽을 추출하여 상기 토픽의 분포와 관련된 사전 확률을 최적화할 수 있다. 사전 확률 추출기(210)는 객체로부터 토픽을 추출하고, 토픽에 대하여 사전 확률의 변화에 따른 평균 토픽 일관성(coherence)을 계산할 수 있다.The
사전 확률 추출기(210)는 평균 토픽 일관성에 기초하여 최적화된 사전 확률을 채택(adopt)할 수 있다. 사전 확률 추출기(210)는 최적화된 사전 확률을 토픽 정제기(230)로 출력할 수 있다. 사전 확률 추출기(210)의 동작은 도 4 내지 도 6을 참조하여 자세하게 설명될 것이다.The
토픽 정제기(230)는 사전 확률에 기초하여 추출된 토픽을 분할(split) 또는 합병(merge)함으로써 토픽을 정제(refining)할 수 있다. 토픽 정제기(230)는 토픽 내에 포함된 연관어들의 의미 유사도에 기초하여 토픽을 분할하거나 연관어들에 기초한 토픽 사이의 유사도에 기초하여 토픽을 합병할 수 있다.The
토픽 정제기(230)는 정제한 토픽을 레이블러(250)로 출력할 수 있다. 토픽 정제기(230)의 동작은 도 7 내지 도 15를 참조하여 자세하게 설명될 것이다.The
레이블러(labeler, 250)는 정제된 토픽을 대표하는 문장을 추출함으로써 정제된 토픽을 자동으로 레이블링(labeling)할 수 있다. 레이블러(250)는 토픽과 연관성이 높은 문장을 후보 문장으로 채택하고, 후보 문장에 포함된 연관어들의 확률 분포에 기초하여 토픽을 대표하는 문장을 추출하여 토픽을 레이블링할 수 있다. 레이블러(250)의 동작은 도 16 내지 도 18을 참조하여 자세하게 설명될 것이다.The
도 3은 도 1에 도시된 토픽 모델링 장치의 전체 동작의 예를 나타낸다.3 shows an example of the overall operation of the topic modeling apparatus shown in FIG. 1.
도 3을 참조하면, 사전 확률 추출기(210)는 객체로부터 LDA를 이용하여 토픽을 추출할 수 있다. 사전 확률 추출기(210)는 LDA를 이용하여 사전 확률을 변화시키면서 토픽을 추출할 수 있다. 사전 확률 추출기(210)는 평균 토픽 일관성을 계산하여 최적화된 사전 확률을 추출할 수 있다(구할 수 있다). 사전 확률 추출기(210)는 최적화된 사전 확률을 토픽 정제기(210) 또는 레이블러(270)로 출력할 수 있다.Referring to FIG. 3, the
토픽 정제기(230)는 최적화된 사전 확률에 기초하여 토픽을 정제할 수 있다. 토픽 정제기(230)는 토픽을 분할 또는 합병함으로써 정제할 수 있다. 토픽 정제기(230)는 정제한 토픽을 레이블러(270)로 출력할 수 있다.
레이블러(270)는 정제된 토픽을 자동으로 레이블링할 수 있다. 레이블러(270)는 정제된 토픽으로부터 후보 문장을 채택하고, 후보 문장으로부터 대표 문장을 추출함으로써 토픽을 자동으로 레이블링할 수 있다.The labeler 270 may automatically label the refined topic. The labeler 270 may automatically label the topic by adopting the candidate sentence from the refined topic and extracting the representative sentence from the candidate sentence.
이하에서 도 4 내지 도 6을 참조하여 사전 확률 추출기의 동작을 자세하게 설명할 것이다.Hereinafter, the operation of the prior probability extractor will be described in detail with reference to FIGS. 4 to 6.
도 4는 도 2에 도시된 사전 확률 추출기의 동작의 예를 나타낸다.4 shows an example of the operation of the prior probability extractor shown in FIG.
도 4를 참조하면, 사전 확률 추출기(210)는 사전 확률을 변화시키면서 토픽을 추출하고, 토픽 일관성을 계산하여 최적화된 사전 확률을 추출할 수 있다(구할 수 있다).Referring to FIG. 4, the
사전 확률 추출기(210)는 LDA 방법을 사용하여 토픽에 연관된 단어들이 토픽에 각각 속할 확률을 계산함으로써 토픽을 추출할 수 있다. LDA는 베이지안(Bayesian) 확률 모델을 사용하기 때문에 사전 확률(Prior Probability)인 α와 β의 초기 값이 필요할 수 있다.The
정확한 사전 확률 초기 값을 사용할 경우 토픽 모델링 장치(10)의 실행 시간이 단축되고 토픽 결과도 향상될 수 있다. α는 문서 내의 토픽 분포를 나타내고, β는 토픽 내의 단어가 어떤 확률로 분포되는지를 나타낼 수 있다.When the accurate prior probability initial value is used, the execution time of the
사전 확률 추출기(210)는 사전 확률인 α와 β를 최적으로 하는 값을 토픽 일관성(Topic Coherence)을 통해 실험적으로 찾아낼 수 있다. 사전 확률 추출기(210)는 사전 확률은 실험적으로 찾기 때문에 다양한 데이터에 대한 최적의 사전 확률을 구해 낼 수 있으며, 빅데이터 기술을 통하여 모집단을 바로 추정하여 정확한 결과를 도출할 수 있다.The
사전 확률 추출기(210)는 객체로부터 토픽을 추출할 수 있다. 도 4의 예시에서, 토픽은 성능(performance), 드라이빙(driving), 디지인(design) 및 서비스(service)를 포함할 수 있다.The
사전 확률 추출기(210)는 추출한 토픽에 대하여 일정한 값으로 사전 확률을 변화시키면서 각 토픽에 대한 평균 토픽 일관성을 계산할 수 있다. 예를 들어, α 또는 β값을 0.05씩 변화시키면서 평균 토픽 일관성을 계산할 수 있다.The
사전 확률 추출기(210)는 평균 토픽 일관성이 가장 높은 값을 나타내는 사전 확률을 최적화된 사전 확률로 채택할 수 있다.The
사전 확률 추출기(210)는 소프트웨어 프레임워크를 사용하여 사전 확률을 최적화할 수 있다. 예를 들어, 사전 확률 추출기(210)는 맵리듀스(mapreduce) 프레임워크를 이용하여 사전 확률을 최적화할 수 있다.The
맵리듀스 프레임워크는 페타바이트 이상의 대용량 데이터를 클러스터 환경에서 병렬 처리를 지원할 수 있다. 맵리듀스 프레임워크는 맵(Map)과 리듀스(Reduce)라는 함수 기반으로 구성될 수 있다.The MapReduce framework can support parallel processing of large data of more than petabytes in a cluster environment. The MapReduce framework can be configured based on a function called Map and Reduce.
맵과 리듀스 단계는 입력과 출력으로써 키-값(key-value) 쌍을 가지고 있고, 그 타입은 프로그래머에 의해 직접 선택될 수 있다. 또한 맵과 리듀스 함수도 프로그래머에 의해 직접 작성될 수 있다.The map and reduce steps have key-value pairs as inputs and outputs, and the type can be selected directly by the programmer. Map and reduce functions can also be written directly by the programmer.
맵 단계는 주로 흩어져 있는 데이터를 키-값 형태로 연관성 있는 데이터 분류로 묶는 작업이며, 리듀스 단계는 맵의 출력값 중 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업일 수 있다.The map step is a task of grouping scattered data into related data classifications in key-value form, and the reduce step may be a task of removing redundant data and extracting desired data from the output values of the map.
사전 확률 추출기(210)는 맵리듀스 프로그램이 실행하여, 입력된 데이터가 데이터 노드의 개수(매퍼의 개수)만큼 나누어져 동시에 처리함으로써, 실행 시간을 1/데이터 노드의 개수만큼 줄일 수 있다. 맵리듀스는 아파치 하둡(Apache Hadoop)에서 오픈 소스 소프트웨어로 사용되고, 자바(Java)와 C++, 그리고 기타 언어에서 적용이 가능하도록 작성될 수 있다. 예를 들어, 맵리듀스 프로그램은 자바 언어를 기반으로 구현될 수 있다.The
도 5는 도 2에 도시된 사전 확률 추출기가 토픽 일관성을 계산하는 동작의 예를 나타낸다.FIG. 5 shows an example of an operation in which the prior probability extractor shown in FIG. 2 calculates topic consistency.
도 5를 참조하면, 사전 확률 추출기(210)는 토픽에 대하여 상이한 사전 확률을 적용시키면서 평균 토픽 일관성을 계산할 수 있다. 사전 확률 추출기(210)는 상이한 사전 확률에 대응되는 데이터 노드(data node)와 매퍼(mapper)들을 이용하여 평균 토픽 일관성을 계산할 수 있다.Referring to FIG. 5, the
사전 확률 추출기(210)는 최적 사전 확률을 추출하기 위해 토픽 일관성을 고려할 수 있다. 토픽 일관성은 모델링 기법의 효용성을 평가하는데 사용되는 평가 척도를 의미할 수 있고, 토픽을 구성하는 연관어(단어)들이 얼마나 유사한 의미를 가지고 있는지를 나타낼 수 있다.The
사전 확률 추출기(210)는 수학식 1에 기초하여 평균 토픽 일관성을 계산할 수 있다.The
여기서, TC는 토픽 일관성을 의미하고, sim(wl, wf) 토픽 내의 연관어 wl, wf의 의미 유사도(semantic similarity) 값을 의미할 수 있다. 예를 들어, 의미 유사도는 워드넷 의미 유사도(similarity based on WordNet)를 포함할 수 있다.Here, TC may mean topic consistency, and may mean semantic similarity value of the related words wl and wf in the sim (wl, wf) topic. For example, semantic similarity may include similarity based on WordNet.
수학식 1의 분자는 주어진 토픽 내 단어들의 각 쌍의 유사도 총합을 의미하고, 분모는 평균을 위한 값일 수 있다. 워드넷은 단어 간의 의미 관계를 파악하기 위한 데이터베이스를 의미할 수 있다.The numerator of
의미 유사도 값이 0에 가까울수록 두 단어의 의미는 관련이 없을 수 있다. 예를 들어, ‘calm’과 ‘peaceful’는 철자는 다르지만 비슷한 의미를 지니고 있는데, 워드넷을 사용한 ‘calm’과 ‘peaceful’의 의미 유사도는 1에 가깝게 나타날 수 있다.As the meaning similarity value approaches 0, the meanings of the two words may not be relevant. For example, "calm" and "peaceful" have different spellings, but they have similar meanings. The similarity between "calm" and "peaceful" using WordNet can be close to one.
즉, 토픽을 구성하는 단어들 간의 워드넷 의미 유사도가 높을수록 해당 토픽의 토픽 일관성이 높을 수 있다.That is, the higher the WordNet semantic similarity between the words constituting the topic, the higher the topic consistency of the corresponding topic.
도 5의 예시에서, 사전 확률 추출기(210)는 입력된 텍스트 문서를 바탕으로 사전확률 α=0, β=0부터 α=1, β=1까지 각각의 파라미터를 0.05씩 증가시키며, 증가된 사전확률의 케이스마다 맵리듀스 기반의 토픽 추출 알고리즘(Mahout LDA)를 실행할 수 있다. 도 5의 예시의 경우, 사전 확률의 경우의 수는 총 441개이다.In the example of FIG. 5, the
사전 확률 추출기(210)는 맵리듀스 기반의 토픽 추출 알고리즘이 실행하여 각 사전확률 케이스마다 100개의 토픽을 추출하게 되고, 추출된 토픽들은 각 토픽에 알맞은 연관어들과 이에 대한 확률 값을 가질 수 있다.The
사전 확률 추출기(210)는 각각의 사전 확률에 대하여 평균 토픽 일관성을 계산할 수 있다. 사전 확률 추출기(210)는 각 매퍼에서 단어들 간의 워드넷 의미 유사도를 이용하여 모든 토픽의 토픽 일관성을 계산할 수 있다.
사전 확률 추출기(210)는 사전확률 1개 케이스에 해당하는 토픽 100개의 토픽 일관성 값이 확인되면, 확인된 100개의 토픽 일관성 값의 평균을 계산할 수 있다. 사전 확률 추출기(210)는 사전 확률 케이스와 함께 평균 토픽 일관성 값을 반환할 수 있다. The
사전 확률 추출기(210)는 평균 토픽 일관성 값을 계산하는 매퍼들의 연산이 완료된 후에, 출력 결과들을 모두 취합되어 리듀서의 입력으로 사용할 수 있다.The
도 5의 예시에서, 사전 확률 추출기(210)는 전체 441개 사전확률 케이스의 평균 토픽 일관성 값을 계산할 때 매퍼의 개수만큼 나누어서 계산을 수행할 수 있다. 사전 확률 추출기(210)는 각 매퍼들의 연산은 병렬로 동시에 실행하기 때문에 단일 프로그램 기반의 사전확률 최적화 알고리즘에 비해 실행 속도는 더욱 빠를 수 있다.In the example of FIG. 5, the
도 6은 도 2에 도시된 사전 확률 추출기가 최적화된 사전 확률을 채택하는 동작의 예를 나타낸다.FIG. 6 shows an example of an operation in which the prior probability extractor shown in FIG. 2 adopts the optimized prior probability.
도 6을 참조하면, 사전 확률 추출기(210)는 평균 토픽 일관성이 가장 높은 사전 확률을 최적화된 사전 확률로 채택할 수 있다.Referring to FIG. 6, the
사전 확률 추출기(210)는 리듀서에서 전체 사전 확률 케이스의 평균 토픽 일관성 값을 모두 비교하여 가장 높은 평균 토픽 일관성 값을 갖는 사전 확률을 최적화된 사전 확률로 채택할 수 있다. 사전 확률 추출기(210)는 최적화된 사전 확률을 토픽 정제기(230)로 출력할 수 있다.The
이하에서, 도 7 내지 도 15를 참조하여 토픽 정제기(230)의 동작을 자세하게 설명할 것이다.Hereinafter, the operation of the
도 7은 도 2에 도시된 토픽 정제기가 토픽을 분할하는 동작의 예를 나타낸다.FIG. 7 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 divides a topic.
도 7을 참조하면, LDA의 사전 확률을 최적화 하고 토픽 모델링을 수행하면 대체적으로 우수한 결과를 보이지만, 기계적이고 통계적인 알고리즘에 의해 토픽을 추출하기 때문에 실제와 다른 의미의 결과를 출력하는 경우가 존재할 수 있다.Referring to FIG. 7, optimizing the prior probabilities of LDA and performing topic modeling generally show excellent results, but since the topic is extracted by a mechanical and statistical algorithm, there may be a case in which a result that is different from the actual one is output. have.
크게 2가지의 문제점이 존재하는데, 첫 번째는 하나의 토픽에 두 가지 이상의 다른 의미를 지닌 연관 단어 그룹들이 존재하는 것이고, 두 번째는 여러 토픽에서 유사한 의미를 지닌 연관어들을 포함하는 것일 수 있다.There are two main problems, the first being a group of related words having two or more different meanings in one topic, and the second being a group containing related words with similar meanings in several topics.
토픽 정제기(230)는 하나의 토픽에 둘 이상의 다른 의미를 가지는 연관어 그룹들이 존재하는 경우, 하나의 토픽을 둘 이상의 토픽으로 분할할 수 있다. 또한, 토픽 정제기(230)는 유사한 의미를 지니는 토픽들을 구성하는 연관어들의 집합을 합병할 수 있다.The
토픽 정제기(230)는 연관어들을 군집화(clustering)하여 복수의 군집(cluster)을 생성하고, 각각의 군집 내부의 연관어들 간의 의미 유사도를 평균하여 내부 유사도를 계산할 수 있다.The
토픽 정제기(230)는 상이한 군집의 연관어들 간의 의미 유사도를 평균하여 교차 유사도를 계산하고, 내부 유사도와 교차 유사도에 기초하여 복수의 군집을 상이한 토픽으로 분할할 수 있다.The
도 8은 도 2에 도시된 토픽 정제기가 연관어들을 군집화하는 동작의 예를 나타낸다.FIG. 8 illustrates an example of an operation in which the topic refiner shown in FIG. 2 clusters association terms.
도 8을 참조하면, 토픽 정제기(230)는 토픽 내에 있는 연관어들 간의 워드넷(WordNet)기반의 의미 유사도(semantic similarity)를 측정할 수 있다. 토픽 정제기(230)는 계층적 군집화(hierarchical clustering)를 통해 연관어들을 자동 컷오프(automatic cut-off)할 수 있다. 도 8의 예시는 계층적 군집에 따른 자동 컷오프의 예를 나타낼 수 있다.Referring to FIG. 8, the
(1)의 경우에는 한 토픽에 두 가지 의미를 지니는 상이한 토픽들이 존재한다는 것을 의미할 수 있고, 이 경우 토픽 정제기(230)는 연관어들은 2개로 군집화할 수 있다. (2)의 경우에는 토픽 정제기(230)는 연관어들을 4개로 군집화할 수 있다.In the case of (1), it may mean that there are different topics having two meanings in a topic, and in this case, the
도 9는 도 2에 도시된 토픽 정제기가 내부 유사도 및 교차 유사도를 계산하는 동작의 예를 나타낸다.FIG. 9 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates internal similarity and cross similarity.
도 9를 참조하면, 토픽 정제기(230)는 자동 컷오프로 군집화를 수행하기 위해 내부 유사도 및 외부 유사도를 계산할 수 있다.Referring to FIG. 9, the
내부 유사도는 위드인 클러스터(within-cluster)의 의미 유사도의 평균을 의미할 수 있고, 교차 유사도는 크로스 클러스터(cross-clusters) 간의 의미 유사도의 평균을 의미할 수 있다.The internal similarity may mean an average of similarity similarities of a within-cluster, and the cross similarity may mean an average of similarity between cross-clusters.
즉, 토픽 정제기(230)는 각각의 군집 내부에 포함된 연관어들 간의 의미 유사도를 측정하고 이들의 평균을 계산함으로써 내부 유사도를 계산할 수 있다. 토픽 정제기(230) 서로 다른 군집에 포함된 연관어들 간의 의미 유사도를 측정하고 이들의 평균을 계산함으로써 교차 유사도를 계산할 수 있다.That is, the
도 9의 예시에서, 토픽 정제기(230)는 클러스터 1과 클러스터 2의 내부 유사도를 계산하기 위해서, 클러스터 1에 포함된 w1과 w2의 의미 유사도를 측정하고, 클러스터 2에 포함된 w3와 w4의 의미 유사도를 측정하여 평균을 계산할 수 있다. 도 9에서 내부 유사도는 0.85일 수 있다.In the example of FIG. 9, the
토픽 정제기(230)는 클러스터 1에 포함된 w1과 클러스터 2에 포함된 w3의 의미 유사도를 측정하고, 동일한 방식으로 w1-w4, w2-w3 및 w2-w4의 의미 유사도를 측정하여 평균함으로써 교차 유사도를 계산할 수 있다. 도 9에서 교차 유사도는 0.25일 수 있다.The
내부 유사도가 높고 교차 유사도가 낮을 수록 두 개의 클러스터는 잘 분할 되었음을 의미한다. 즉, 토픽 정제기(230)는 가장 좋은 자동 컷오프를 위해서 내부 유사도 값이 크고 교차 유사도 값이 작은 컷오프를 찾을 수 있다.The higher internal similarity and lower cross similarity means that the two clusters are well divided. That is, the
토픽 정제기(230)는 각 컷오프에 대한 확률 값을 표 1과 같이 계산할 수 있다.The
토픽 정제기(230)는 컷 오프를 확률적으로 계산하기 위해 교차 유사도에 역수를 취하여 내부 유사도와 곱할 수 있다. 교차 유사도의 역수를 취하는 것은 교차 유사도의 값이 작을수록 토픽이 분할되어야 한다는 것을 의미하기 때문이다. 토픽 정제기(230)는 표 1의 가장 우측의 확률 값이 가장 큰 값을 갖도록 하는 컷 오프를 채택하여 토픽을 분할 할 수 있다.The
도 10은 도 2에 도시된 토픽 정제기가 토픽을 합병하는 동작의 예를 나타낸다.FIG. 10 shows an example of an operation in which the topic refiner illustrated in FIG. 2 merges a topic.
도 10을 참조하면, 토픽 정제기(230)는 상이한 토픽들이 유사한 연관어들을 포함하고 있는 경우 복수의 토픽들을 하나의 토픽으로 합병할 수 있다. 도 10의 예시에서 Topic 0와 Topic 1은 유사한 의미를 지닌 토픽들이지만 별 개의 토픽으로 분할되어 있을 수 있다.Referring to FIG. 10, the
토픽 정제기(230)는 토픽 합병 알고리즘을 통해 유사한 의미를 지닌 토픽들을 하나의 토픽으로 합병할 수 있다.The
토픽 정제기(230)는 연관어들에 기초하여 토픽과 토픽에 포함된 문장 간의 연관성을 계산할 수 있다. 토픽 정제기(230)는 연관성에 기초하여 연관어들을 토픽에 가장 연관된 문장으로 대체하고, 토픽에 연관된 문장과 상이한 토픽에 연관된 문장 간의 코사인 유사도(cosine similarity)를 계산하여 이분 그래프(Bipartite Graph)를 생성할 수 있다.The
토픽 정제기(230)는 토픽과 상기 상이한 토픽 간의 토픽 유사도를 계산하고, 토픽 유사도에 기초하여 토픽과 상이한 토픽을 합병할 수 있다.
도 11a는 도 2에 도시된 토픽 정제기가 토픽과 문장의 연관성을 계산하는 동작의 일 예를 나타내고, 도 11b는 도 2에 도시된 토픽 정제기가 토픽과 문장의 연관성을 계산하는 동작의 다른 예를 나타내고, 도 11c는 도 2에 도시된 토픽 정제기가 토픽과 문장의 연관성을 계산하는 동작의 또 다른 예를 나타낸다.FIG. 11A illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates an association between a topic and a sentence, and FIG. 11B illustrates another example of an operation in which the topic refiner illustrated in FIG. 2 calculates an association between a topic and a sentence. 11C illustrates another example of an operation in which the topic refiner illustrated in FIG. 2 calculates an association between a topic and a sentence.
도 11a 내지 도 11c를 참조하면, 토픽 정제기(230)는 토픽을 추출하고 토픽에 사용된 각 문장들을 각 토픽의 연관어들을 통해 확률 값을 계산하여 상위 k 개의 문장을 추출할 수 있다.Referring to FIGS. 11A to 11C, the
토픽 정제기(230)는 각각의 토픽에 대해서 토픽에 포함된 연관어 중에서 연관성을 분석하고자 하는 문장에 등장하는 연관어들의 확률을 더하고 토픽에 포함된 연관어의 개수로 나눌 수 있다.The
예를 들어, 도 11a에서 토픽 0와 문장 S1의 연관성을 측정하기 위해서 토픽 정제기(230)는 토픽 0에 포함된 연관어 w1, w2 및 w3중에서 문장 S1에 포함된 연관어인 w1, w3의 확률 분포 값을 더하고 토픽 0의 연관어(또는 연관 단어)의 개수로 나눌 수 있다.For example, in order to measure the correlation between the
마찬가지로 토픽 정제기(230)는 토픽 0과 문장 S2, S3와의 연관성을 측정할 수 있다. 토픽 정제기(230)는 다른 토픽들에 대해서도 동일한 과정을 수행할 수 있다. 토픽 정제기(230)는 측정한 연관성에 기초하여 각 토픽을 대표하는 연관어들을 연관성이 높은 k 개의 문장으로 대체할 수 있다.Similarly, the
도 12는 도 2에 도시된 토픽 정제기가 문장 간의 코사인 유사도를 계산하는 동작의 예를 나타내고, 도 13은 도 2에 도시된 토픽 정제기가 이분 그래프를 생성하는 동작의 예를 나타낸다.12 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates cosine similarity between sentences, and FIG. 13 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 generates a bipartite graph.
도 12 및 도 13을 참조하면, 토픽 정제기(230)는 서로 다른 토픽들의 대표문장 간의 코사인 유사도를 계산할 수 있다. 토픽 정제기(230)는 코사인 유사도에 기초하여 이분 그래프(bipartite graph)를 생성할 수 있다.12 and 13, the
도 12의 예시에서 토픽 정제기(230)는 토픽 0의 연관어와 대체된 문장 S1과 토픽 1의 연관어와 대체된 S2에 포함된 단어들을 합칠 수 있다. 토픽 정제기(230)는 합쳐진 연관어와 각 문장들을 비교하여 포함된 단어가 중복되면 1을 삽입하고, 중복되지 않으면 0을 삽입하는 방법으로 벡터화 시킨 후에 코사인 유사도를 계산할 수 있다.In the example of FIG. 12, the
토픽 정제기(230)는 계산한 코사인 유사도에 기초하여 비교하고자 하는 두 개의 토픽을 이분 그래프로 나타낼 수 있다. 토픽 정제기(230)는 추출된 모든 토픽들에 대하여 코사인 유사도를 계산하고 그 결과를 이분 그래프로 나타낼 수 있다.The
도 14는 도 2에 도시된 토픽 정제기가 토픽 간의 유사도를 계산하는 동작의 예를 나타내고, 도 15는 도 2에 도시된 토픽 정제기가 토픽 간의 유사를 군집화한 결과의 예를 나타낸다.FIG. 14 illustrates an example of an operation in which the topic refiner illustrated in FIG. 2 calculates similarity between topics, and FIG. 15 illustrates an example of a result of the topic refiner illustrated in FIG. 2 clustering similarities between topics.
토픽 정제기(230)는 상술한 이분 그래프에 기초하여 가장 높은 값을 할당하는 그래프 최적화 알고리즘인 MWBM(Maximum Weighted Bipartite Matching) 방법을 사용하여 모든 토픽 쌍의 토픽 유사도를 계산할 수 있다.The
토픽 정제기(230)는 각 토픽 쌍의 토픽 유사도 값들을 k-평균 방법으로 클러스터링 함으로써, 토픽 쌍의 합병 여부를 판단할 수 있다.The
도 15의 예시에서 토픽 정제기(230)는 이분 그래프에 MWBM를 적용 후에 모든 토픽 쌍의 토픽 유사도 값을 k-평균 군집화에 적용한 결과를 나타내고, 합병되는 토픽 쌍(Tx=Ty)과 합병되지 않는 토픽 쌍(Tx≠Ty)을 판단할 수 있다.In the example of FIG. 15,
도 16은 도 2에 도시된 레이블러가 토픽을 자동으로 레이블링 하는 동작의 예를 나타낸다.FIG. 16 illustrates an example of an operation in which the labeler illustrated in FIG. 2 automatically labels a topic.
도 16을 참조하면, 레이블러(270)는 추출된 토픽을 구성하는 주요 연관어들의 의미를 판단하여 토픽에 명명함으로써 토픽을 레이블링할 수 있다.Referring to FIG. 16, the labeler 270 may label a topic by determining the meanings of main association terms constituting the extracted topic and naming the topic.
토픽 레이블링이 잘 수행되기 위해서는 연관어와 토픽에 대해 입력으로 주어지는 대용량 텍스트 문서 집합에 대한 충분한 도메인 지식이 요구될 수 있다. Topic labeling may require sufficient domain knowledge of large text document sets that are given as input to associations and topics.
그러나, 일반 사용자는 도메인에 대한 지식이 충분하지 않기 때문에, 토픽 레이블링을 수작업으로 하는 것이 어려울 수 있다. 레이블러(270)는 토픽 레이블링을 자동으로 수행함으로써, 빠르고 정확한 토픽 레이블링을 가능하게 할 수 있다.However, because end users do not have enough knowledge of the domain, it may be difficult to do topic labeling manually. The labeler 270 may perform topic labeling automatically, thereby enabling fast and accurate topic labeling.
레이블러(270)는 필터링(Filtering)과 블록킹(Blockinig) 방법을 통해 스코어(Score)를 계산하여 Top-K 개의 문장을 토픽 레이블로써 사용할 수 있다. 스코어는 레이블링 유사도를 의미할 수 있다.The labeler 270 may calculate a score through filtering and blocking methods, and use the Top-K sentences as a topic label. The score may mean labeling similarity.
토픽에 포함된 모든 연관어와 문장들에 대하여 레이블링을 수행할 경우에 레이블링 유사도를 계산하는데 상당한 시간이 소요될 수 있다. 예를 들어, 100개의 토픽과 각 토픽마다 500개의 연관어, 그리고 100,000,000개의 문장이 존재한다고 가정을 하면 스코어 계산 수행에 있어 5,000,000,000,000번의 계산이 수행되어야 하므로 상당한 시간이 소요될 수 있다.When labeling all the related words and sentences included in the topic, it may take considerable time to calculate the labeling similarity. For example, assuming 100 topics, 500 associative words, and 100,000,000 sentences exist for each topic, 5,000,000,000,000 calculations must be performed to perform a significant amount of time.
레이블러(270)는 소요 시간을 감소시키기 위해서 필터링을 통해 후보 문장을 채택하고, 블록킹을 통해 토픽을 대표하는 대표 문장을 추출함으로써 레이블링에 소요되는 시간을 감소시킬 수 있다.The labeler 270 may reduce the time required for labeling by adopting the candidate sentence through filtering to reduce the time required, and extracting the representative sentence representing the topic through blocking.
도 17은 도 2에 도시된 레이블러가 후보 문장을 채택하는 동작의 예를 나타낸다.FIG. 17 shows an example of an operation in which the labeler illustrated in FIG. 2 adopts a candidate sentence.
도 17을 참조하면, 레이블러(270)는 토픽에 포함된 연관어들의 확률 분포에 기초하여 토픽으로부터 확률값이 작은 연관어들을 제거하고, 토픽에 포함된 문장과 토픽에 포함된 연관어의 쌍을 생성할 수 있다.Referring to FIG. 17, the labeler 270 removes association words having a small probability value from a topic based on a probability distribution of association words included in a topic, and compares a sentence included in the topic and a pair of related words included in the topic. Can be generated.
레이블러(270)는 문장과 연관어의 쌍에 기초하여 각각의 연관어와 쌍을 이루는 문장의 개수를 계산하고, 문장의 개수에 기초하여 문장과 연관어의 쌍을 제거하여 후보 문장을 채택할 수 있다.The labeler 270 may calculate a number of sentences paired with each related word based on a pair of sentences and related words, and adopt a candidate sentence by removing a pair of sentences and related words based on the number of sentences. have.
레이블러(270)는 전체 문장에서 토픽과 관련성이 높은 문장들을 후보 문장으로 채택하여 제공해주는 필터링을 수행할 수 있다. 레이블러(270)는 필터링을 통해 불필요한 연산을 최소화할 수 있다.The labeler 270 may perform filtering that selects and provides sentences related to a topic in the entire sentence as candidate sentences. The labeler 270 may minimize unnecessary operations through filtering.
확률 분포가 낮은 연관어는 토픽과의 관련성이 낮기 때문 레이블러(270)는 토픽 내에서 확률 분포 값이 특정치 보다 낮은 연관어를 탈락시킬 수 있다.Since the association word having a low probability distribution is low in relation to the topic, the labeler 270 may drop an association word having a probability distribution value lower than a specific value in the topic.
레이블러(270)는 문장을 빠르게 스캔하고, 문장과 연관어의 쌍을 생성할 수 있다. 레이블러(270)는 문장과 단어의 쌍을 통해 각 연관어들의 역색인(Inverted Index)을 구축하며 개수를 카운트 할 수 있다. 이 때, 하나의 문장이 다수의 연관어에 중복하여 등장하면, 레이블러(270)는 상위 연관어의 역색인에만 구축하고, 카운트는 정상적으로 수행할 수 있다.The labeler 270 can quickly scan a sentence and generate a pair of sentences and associated words. The labeler 270 may build an inverted index of each related word through a pair of sentences and words, and count the number. At this time, if one sentence overlaps a plurality of related words, the labeler 270 may build only the inverse index of the upper related word, and count may be normally performed.
레이블러(270)는 카운트 횟수가 적은 연관어와 해당 문장들을 탈락(제거)시킬 수 있다. 레이블러(270)는 연관성이 낮은 문장들을 제거함으로써 토픽과 관련성이 높은 문장들을 선별할 수 있으며, 불필요한 연산을 최소화 할 수 있다.The labeler 270 may drop (remove) the related word and the sentence having a small number of counts. The labeler 270 may select sentences that are highly related to the topic by removing sentences that are not related, and minimize unnecessary operations.
후보 문장은 레이블러(270)가 탈락시킨 후에 토픽에 남은 문장을 의미할 수 있다.The candidate sentence may mean a sentence remaining in the topic after the labeler 270 is dropped.
도 18은 도 2에 도시된 레이블러가 토픽을 대표하는 문장을 추출하는 동작의 예를 나타낸다. 도 18을 참조하면, 레이블러(270)는 후보 문장에 포함된 연관어들의 확률 분포 및 문장과 연관어 쌍에 기초하여 토픽과 후보 문장 간의 레이블링 유사도를 계산할 수 있다.FIG. 18 illustrates an example of an operation in which the labeler illustrated in FIG. 2 extracts a sentence representing a topic. Referring to FIG. 18, the labeler 270 may calculate a labeling similarity between a topic and a candidate sentence based on a probability distribution of association words included in the candidate sentence and a pair of sentences and association words.
레이블러(270)는 레이블링 유사도에 기초하여 토픽에 대응하는 대표 문장을 추출할 수 있다.The labeler 270 may extract a representative sentence corresponding to the topic based on the labeling similarity.
레이블러(270)는 수학식 2에 기초하여 레이블링 유사도를 계산할 수 있다.The labeler 270 may calculate labeling similarity based on
여기서, score는 상기 토픽 T와 상기 후보 문장 s의 상기 레이블링 유사도(similarity between T and s)를 의미하고, t는 상기 토픽 내의 단어를 의미하고, α는 각 항의 중요도를 나타내는 가중치를 의미할 수 있다.Here, score may mean the similarity between T and s of the topic T and the candidate sentence s, t may mean a word within the topic, and α may mean a weight indicating the importance of each term. .
P(t)는 토픽 단어 t에 대한 확률 값을 의미하고, wordnet(w', T)는 s를 구성하는 단어 중 T에 없는 단어 w'와 토픽 T에 있는 각 단어 간의 워드넷 기반의 의미 유사도(semantic similarity based on WordNet)를 의미할 수 있다.P (t) is the probability value for the topic word t, and wordnet (w ', T) is the wordnet-based semantic similarity between the words w' that are not in T and the words in topic T that make up s. (semantic similarity based on WordNet).
레이블러(270)는 상술한 역색인의 레코드를 입력으로 하여 매퍼를 수행하여 맵리듀스 기반의 병렬 처리를 통해 레이블링 유사도를 계산할 수 있다.The labeler 270 may calculate the labeling similarity through map reduction based parallel processing by performing a mapper by inputting the record of the inverted index described above.
레이블러(270)는 레이블링 유사도를 계산하기 위해서 입력으로 각 역색인의 레코드들을 사용할 수 있다. 매퍼 n에서는 topic n에 대한 문장과 연관어에 기초하여 레이블링 유사도를 계산할 수 있다.The labeler 270 may use the records of each inverted index as input to calculate the labeling similarity. In mapper n, you can calculate labeling similarity based on sentences and associations for topic n.
그 후, 레이블러(270)는 셔플링(Shuffling)을 통해 각 문장들을 내림차순으로 정렬할 수 있다. 마지막으로, 레이블러(270)는 리듀서(Reducer)에서 각 토픽 n에 대한 Top-K의 문장을 출력할 수 있다. Top-K 문장은 토픽 n에 대한 대표 문장을 의미할 수 있다.Thereafter, the labeler 270 may sort the sentences in descending order through shuffling. Finally, the labeler 270 may output a sentence of Top-K for each topic n in the reducer. The Top-K sentence may mean a representative sentence for topic n.
레이블러(270)는 상술한 과정을 거쳐서 각 토픽에 대해 레이블링 유사도가 높은 Top-k개의 문장을 추출하고, 이 문장들을 토픽과 연관성이 높고 토픽을 대표하는 문장으로 추출할 수 있다. The labeler 270 may extract Top-k sentences having a high labeling similarity for each topic through the above-described process, and may extract the sentences as sentences representing a topic that is highly related to the topic.
레이블러(270)는 추출한 대표 문장을 사용하여 토픽 레이블링을 자동으로 수행하고, 토픽이 무엇을 의미하는지 한눈에 보기 쉽게 보여줄 수 있다.The labeler 270 automatically performs topic labeling using the extracted representative sentence, and can easily show at a glance what the topic means.
도 19는 도 1에 도시된 토픽 모델링 장치의 동작의 순서도를 나타낸다.19 is a flowchart of an operation of the topic modeling apparatus illustrated in FIG. 1.
도 19를 참조하면, 수신기(100)는 객체를 수신할 수 있다. 도 19의 예시에서 수신기(100)가 수신하는 객체는 웹사이트의 게시글을 포함할 수 있다. 도 19의 예시에서 수신기는 차(car)라는 도메인(domain)에 해당하는 웹사이트(예를 들어, 보배드림)의 게시글을 수신할 수 있다.Referring to FIG. 19, the
사전 확률 추출기(210)는 객체를 수집하여 정제하고, 데이터베이스에 저장할 수 있다. 예를 들어, 사전 확률 추출기(210)는 보배드림이라는 웹사이트에서 대용량의 텍스트 문서를 수집하여 정제하고 데이터베이스에 저장할 수 있다.The
사전 확률 추출기(210)는 객체로부터 토픽을 추출하여 사전 확률의 변화에 따른 토픽 일관성을 계산할 수 있다. 사전 확률 추출기(210)는 토픽 일관성에 기초하여 최적화된 사전 확률 α, β를 추출할 수 있다(구할 수 있다). α는 문서 내의 토픽 분포를 나타내고, β는 토픽 내의 단어가 어떤 확률로 분포되는지를 나타낼 수 있다.The
토픽 정제기(250)는 의미가 중복되는 토픽들을 하나의 토픽으로 합병하고, 하나의 토픽에 의미가 상이한 연관어들을 복수의 토픽으로 분할함으로써 토픽을 정제할 수 있다.The
레이블러(270)는 연관어들의 확률 분포 및 연관어와 문장 간의 유사도에 기초하여 후보 문장을 채택하고, 후보 문장으로부터 토픽을 대표하는 대표 문장을 추출할 수 있다. 레이블러(270)는 레이블링 유사도가 가장 높은 K개의 문장을 대표 문장으로 추출하여 자동으로 토픽 레이블링을 수행할 수 있다.The labeler 270 may adopt the candidate sentence based on the probability distribution of the related words and the similarity between the related word and the sentence, and extract the representative sentence representing the topic from the candidate sentence. The labeler 270 may automatically perform topic labeling by extracting K sentences having the highest labeling similarity as representative sentences.
이를 통해, 토픽 모델링 장치(10)를 통해 주어진 대용량 문서 집합에서 많이 다루어지는 토픽들과, 그 토픽들의 의미가 쉽게 파악될 수 있다.Through this, the topics that are frequently dealt with in a large document set given by the
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine code, such as produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the accompanying drawings as described above, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.
Claims (20)
상기 사전 확률에 기초하여 추출된 상기 토픽을 분할 또는 합병함으로써 상기 토픽을 정제하는 단계; 및
정제된 토픽을 대표하는 문장을 추출함으로써 상기 정제된 토픽을 자동으로 레이블링(labeling)하는 단계
를 포함하고,
상기 최적화하는 단계는,
상기 객체로부터 상기 토픽을 추출하는 단계;
상기 토픽에 대하여 상기 사전 확률의 변화에 따른 평균 토픽 일관성(coherence)을 계산하는 단계; 및
상기 평균 토픽 일관성에 기초하여 최적화된 사전 확률을 채택하는 단계
를 포함하는 토픽 모델링 방법.
Extracting a topic from an object to optimize prior probabilities associated with the distribution of the topic;
Refining the topic by dividing or merging the extracted topic based on the prior probability; And
Automatically labeling the refined topic by extracting a sentence representative of the refined topic
Including,
The optimizing step,
Extracting the topic from the object;
Calculating an average topic coherence for the topic according to a change in the prior probability; And
Adopting an optimized prior probability based on the average topic consistency
Topic modeling method comprising a.
상기 계산하는 단계는,
하기 수학식에 기초하여 상기 평균 토픽 일관성을 계산하는 단계
를 포함하는 토픽 모델링 방법.
[수학식]
여기서, TC는 토픽 일관성을 의미하고, sim(wl, wf) 토픽 내의 연관어 wl, wf의 의미 유사도(semantic similarity) 값을 의미함.
The method of claim 1,
The calculating step,
Calculating the average topic consistency based on the following equation
Topic modeling method comprising a.
[Equation]
Here, TC means topic consistency, and means semantic similarity values of the related words w l and w f in the sim (w l , w f ) topic.
상기 정제하는 단계는,
상기 토픽에 포함된 연관어들의 의미 유사도에 기초하여 상기 토픽을 분할하는 단계; 또는
상기 연관어들로부터 계산한 토픽 간 유사도에 기초하여 상기 토픽을 합병하는 단계
를 포함하는 토픽 모델링 방법.
The method of claim 1,
The purification step,
Dividing the topic based on semantic similarity of the related words included in the topic; or
Merging the topics based on the similarity between the topics calculated from the association terms
Topic modeling method comprising a.
상기 분할하는 단계는,
상기 연관어들을 군집화하여 복수의 군집을 생성하는 단계;
각각의 군집 내부의 연관어들 간의 의미 유사도를 평균하여 내부 유사도(within-cluster similarity)를 계산하는 단계;
상이한 군집의 연관어들 간의 의미 유사도를 평균하여 교차 유사도((cross-clusters similarity)를 계산하는 단계; 및
상기 내부 유사도와 상기 교차 유사도에 기초하여 복수의 군집을 상이한 토픽으로 분할하는 단계
를 포함하는 토픽 모델링 방법.
The method of claim 4, wherein
The dividing step,
Clustering the association words to generate a plurality of clusters;
Calculating a within-cluster similarity by averaging the semantic similarities between the related words in each cluster;
Calculating cross-clusters similarity by averaging semantic similarities between associations of different clusters; and
Dividing a plurality of clusters into different topics based on the internal similarity and the cross similarity
Topic modeling method comprising a.
상기 합병하는 단계는,
상기 연관어들에 기초하여 상기 토픽과 상기 토픽에 대한 문장 간의 연관성을 계산하는 단계;
상기 연관성에 기초하여 상기 연관어들을 상기 문장으로 대체하는 단계;
상기 문장과 상이한 토픽에 포함된 문장 간의 코사인 유사도(cosine similarity)를 계산하여 이분 그래프(Bipartite Graph)를 생성하는 단계;
상기 토픽과 상기 상이한 토픽 간의 토픽 유사도를 계산하는 단계; 및
상기 토픽 유사도에 기초하여 상기 토픽과 상기 상이한 토픽을 합병하는 단계
를 포함하는 토픽 모델링 방법.
The method of claim 4, wherein
Merging step,
Calculating an association between the topic and a sentence for the topic based on the association terms;
Replacing the association words with the sentence based on the association;
Generating a bipartite graph by calculating cosine similarity between the sentences and sentences included in different topics;
Calculating a topic similarity between the topic and the different topic; And
Merging the topic with the different topic based on the topic similarity
Topic modeling method comprising a.
상기 레이블링하는 단계는,
상기 토픽과 연관성이 높은 문장을 후보 문장으로 채택하는 단계; 및
상기 후보 문장에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽을 대표하는 문장을 추출하여 상기 토픽을 레이블링하는 단계
를 포함하는 토픽 모델링 방법.
The method of claim 1,
The labeling step,
Adopting a sentence highly related to the topic as a candidate sentence; And
Labeling the topic by extracting a sentence representative of the topic based on a probability distribution of related words included in the candidate sentence
Topic modeling method comprising a.
상기 채택하는 단계는,
상기 토픽에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽으로부터 확률값이 작은 연관어들을 제거하는 단계;
상기 토픽에 포함된 문장과 상기 토픽에 포함된 연관어의 쌍을 생성하는 단계;
상기 쌍에 기초하여 각각의 연관어와 쌍을 이루는 문장의 개수를 계산하는 단계; 및
상기 개수에 기초하여 상기 쌍을 제거하여 상기 후보 문장을 채택하는 단계
를 포함하는 토픽 모델링 방법.
The method of claim 7, wherein
The step of adopting,
Removing association words having a small probability value from the topic based on a probability distribution of the association words included in the topic;
Generating a pair of sentences included in the topic and a related word included in the topic;
Calculating the number of sentences paired with each association word based on the pair; And
Removing the pair based on the number to adopt the candidate sentence
Topic modeling method comprising a.
상기 레이블링하는 단계는,
상기 후보 문장에 포함된 연관어들의 확률 분포 및 상기 쌍에 기초하여 상기 토픽과 상기 후보 문장 간의 레이블링 유사도를 계산하는 단계;
상기 레이블링 유사도에 기초하여 상기 토픽에 대응하는 대표 문장을 추출하는 단계
를 포함하는 토픽 모델링 방법.
The method of claim 8,
The labeling step,
Calculating a labeling similarity between the topic and the candidate sentence based on a probability distribution of the related words included in the candidate sentence and the pair;
Extracting a representative sentence corresponding to the topic based on the labeling similarity
Topic modeling method comprising a.
상기 레이블링 유사도를 계산하는 단계는,
하기 수학식에 기초하여 상기 레이블링 유사도를 계산하는 단계
를 포함하는 토픽 모델링 방법.
[수학식]
여기서, score는 상기 토픽 T와 상기 후보 문장 s의 상기 레이블링 유사도(similarity between T and s)를 의미하고, t는 상기 토픽 내의 단어를 의미하고, α는 각 항의 중요도를 나타내는 가중치를 의미하고, P(t)는 토픽 단어 t에 대한 확률 값을 의미하고, wordnet(w', T)는 s를 구성하는 단어 중 T에 없는 단어 w'와 토픽 T에 있는 각 단어 간의 워드넷 기반의 의미 유사도(semantic similarity based on WordNet)를 의미함.
The method of claim 9,
Computing the labeling similarity,
Calculating the labeling similarity based on the following equation
Topic modeling method comprising a.
[Equation]
Here, score means the labeling similarity between the topic T and the candidate sentence s (similarity between T and s), t means a word within the topic, and α means a weight indicating the importance of each term, P (t) denotes a probability value for the topic word t, and wordnet (w ', T) is a wordnet-based semantic similarity between the words constituting s that are not in T and each word in topic T ( semantic similarity based on WordNet).
상기 객체로부터 토픽을 추출하고, 정제하여 상기 토픽을 자동으로 레이블링하는 컨트롤러;
를 포함하고,
상기 컨트롤러는,
상기 객체로부터 상기 토픽을 추출하여 상기 토픽의 분포와 관련된 사전 확률을 최적화하는 사전 확률 추출기;
상기 사전 확률에 기초하여 추출된 상기 토픽을 분할 또는 합병함으로써 상기 토픽을 정제하는 토픽 정제기; 및
정제된 토픽을 대표하는 문장을 추출함으로써 상기 정제된 토픽을 자동으로 레이블링(labeling)하는 레이블러(labeler)
를 포함하고,
상기 사전 확률 추출기는,
상기 객체로부터 상기 토픽을 추출하고, 상기 토픽에 대하여 상기 사전 확률의 변화에 따른 평균 토픽 일관성(coherence)을 계산하고, 상기 평균 토픽 일관성에 기초하여 최적화된 사전 확률을 채택하는
토픽 모델링 장치.
A receiver receiving the object; And
A controller that extracts and refines a topic from the object to automatically label the topic;
Including,
The controller,
A prior probability extractor for extracting the topic from the object to optimize a prior probability associated with the distribution of the topic;
A topic refiner for refining the topic by dividing or merging the extracted topic based on the prior probability; And
A labeler that automatically labels the refined topic by extracting sentences representing the refined topic
Including,
The prior probability extractor,
Extract the topic from the object, calculate an average topic coherence for the topic according to the change of the prior probability, and adopt an optimized prior probability based on the average topic consistency
Topic modeling device.
상기 사전 확률 추출기는,
하기 수학식에 기초하여 상기 평균 토픽 일관성을 계산하는
토픽 모델링 장치.
[수학식]
여기서, TC는 토픽 일관성을 의미하고, sim(wl, wf) 토픽 내의 연관어 wl, wf의 의미 유사도(semantic similarity)값을 의미함.
The method of claim 11,
The prior probability extractor,
Computing the average topic consistency based on the following equation
Topic modeling device.
[Equation]
Here, TC means topic consistency and semantic similarity value of the related words w l and w f in the sim (w l , w f ) topic.
상기 토픽 정제기는,
상기 토픽 내에 포함된 연관어들의 의미 유사도에 기초하여 상기 토픽을 분할하거나 상기 연관어들에 기초한 상기 토픽 사이의 유사도에 기초하여 상기 토픽을 합병하는
토픽 모델링 장치.
The method of claim 11,
The topic purifier,
Dividing the topic based on semantic similarity of association terms included in the topic or merging the topic based on similarity between the topics based on the association terms.
Topic modeling device.
상기 토픽 정제기는,
상기 연관어들을 군집화하여 복수의 군집을 생성하고, 각각의 군집 내부의 연관어들 간의 의미 유사도를 평균하여 내부 유사도를 계산하고, 상이한 군집의 연관어들 간의 의미 유사도를 평균하여 교차 유사도를 계산하고, 상기 내부 유사도와 상기 교차 유사도에 기초하여 복수의 군집을 상이한 토픽으로 분할하는
토픽 모델링 장치.
The method of claim 14,
The topic purifier,
Clustering the related words to generate a plurality of clusters, calculating the internal similarity by averaging the semantic similarities between the related words in each cluster, calculating the cross similarity by averaging the semantic similarities between the related words of the different clusters, Dividing the plurality of clusters into different topics based on the internal similarity and the cross similarity
Topic modeling device.
상기 토픽 정제기는,
상기 연관어들에 기초하여 상기 토픽과 상기 토픽에 대한 문장 간의 연관성을 계산하고, 상기 연관성에 기초하여 상기 연관어들을 상기 문장으로 대체하고, 상기 문장과 상이한 토픽에 포함된 문장 간의 코사인 유사도를 계산하여 이분 그래프(Bipartite Graph)를 생성하고, 상기 토픽과 상기 상이한 토픽 간의 토픽 유사도를 계산하고, 상기 토픽 유사도에 기초하여 상기 토픽과 상기 상이한 토픽을 합병하는
토픽 모델링 장치.
The method of claim 14,
The topic purifier,
Calculate an association between the topic and a sentence for the topic based on the association words, replace the association words with the sentence based on the association, and calculate cosine similarity between the sentence and sentences contained in a different topic Generate a Bipartite Graph, calculate topic similarity between the topic and the different topics, and merge the topic and the different topics based on the topic similarity.
Topic modeling device.
상기 레이블러는,
상기 토픽과 연관성이 높은 문장을 후보 문장으로 채택하고, 상기 후보 문장에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽을 대표하는 문장을 추출하여 상기 토픽을 레이블링하는
토픽 모델링 장치.
The method of claim 11,
The labeler is,
Labeling the topic by adopting a sentence highly related to the topic as a candidate sentence, extracting a sentence representing the topic based on a probability distribution of related words included in the candidate sentence
Topic modeling device.
상기 레이블러는,
상기 토픽에 포함된 연관어들의 확률 분포에 기초하여 상기 토픽으로부터 확률값이 작은 연관어들을 제거하고, 상기 토픽에 포함된 문장과 상기 토픽에 포함된 연관어의 쌍을 생성하고, 상기 쌍에 기초하여 각각의 연관어와 쌍을 이루는 문장의 개수를 계산하고, 상기 개수에 기초하여 상기 쌍을 제거하여 상기 후보 문장을 채택하는
토픽 모델링 장치.
The method of claim 17,
The labeler is,
Based on a probability distribution of related words included in the topic, removing related words having a small probability value from the topic, generating a sentence included in the topic and a pair of related words included in the topic, and based on the pair Calculating the number of sentences paired with each association word, and removing the pair based on the number to adopt the candidate sentence.
Topic modeling device.
상기 레이블러는,
상기 후보 문장에 포함된 연관어들의 확률 분포 및 상기 쌍에 기초하여 상기 토픽과 상기 후보 문장 간의 레이블링 유사도를 계산하고, 상기 레이블링 유사도에 기초하여 상기 토픽에 대응하는 대표 문장을 추출하는
토픽 모델링 장치.
The method of claim 18,
The labeler is,
Calculating a labeling similarity between the topic and the candidate sentence based on a probability distribution of the related words included in the candidate sentence and the pair, and extracting a representative sentence corresponding to the topic based on the labeling similarity;
Topic modeling device.
상기 레이블러는,
하기 수학식에 기초하여 상기 레이블링 유사도를 계산하는
토픽 모델링 장치.
[수학식]
여기서, score는 상기 토픽 T와 상기 후보 문장 s의 상기 레이블링 유사도(similarity between T and s)를 의미하고, t는 상기 토픽 내의 단어를 의미하고, α는 각 항의 중요도를 나타내는 가중치를 의미하고, P(t)는 토픽 단어 t에 대한 확률 값을 의미하고, wordnet(w', T)는 s를 구성하는 단어 중 T에 없는 단어 w'와 토픽 T에 있는 각 단어 간의 워드넷 기반의 의미 유사도(semantic similarity based on WordNet)를 의미함.The method of claim 19,
The labeler is,
Computing the labeling similarity based on the following equation
Topic modeling device.
[Equation]
Here, score means the labeling similarity between the topic T and the candidate sentence s (similarity between T and s), t means a word within the topic, and α means a weight indicating the importance of each term, P (t) denotes a probability value for the topic word t, and wordnet (w ', T) is a wordnet-based semantic similarity between the words constituting s that are not in T and each word in topic T ( semantic similarity based on WordNet).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180052080A KR102052823B1 (en) | 2018-05-04 | 2018-05-04 | Topic model automation method and apparatus using latent dirichlet allocation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180052080A KR102052823B1 (en) | 2018-05-04 | 2018-05-04 | Topic model automation method and apparatus using latent dirichlet allocation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190127448A KR20190127448A (en) | 2019-11-13 |
KR102052823B1 true KR102052823B1 (en) | 2019-12-05 |
Family
ID=68535306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180052080A KR102052823B1 (en) | 2018-05-04 | 2018-05-04 | Topic model automation method and apparatus using latent dirichlet allocation |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102052823B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102613227B1 (en) * | 2022-10-21 | 2023-12-15 | (주)공간인소프트 | Electronic device for evaluating water supply reliability in agricultural reservoir based on big data and machine learning and controlling method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277409A (en) * | 2009-05-29 | 2010-12-09 | Toshiba Corp | Representative sentence extracting device and program |
JP2015503776A (en) * | 2012-03-28 | 2015-02-02 | 三菱電機株式会社 | How to process text and build a model of text |
KR101671740B1 (en) * | 2015-07-07 | 2016-11-16 | 숭실대학교산학협력단 | Apparatus and method for extracting topics |
-
2018
- 2018-05-04 KR KR1020180052080A patent/KR102052823B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277409A (en) * | 2009-05-29 | 2010-12-09 | Toshiba Corp | Representative sentence extracting device and program |
JP2015503776A (en) * | 2012-03-28 | 2015-02-02 | 三菱電機株式会社 | How to process text and build a model of text |
KR101671740B1 (en) * | 2015-07-07 | 2016-11-16 | 숭실대학교산학협력단 | Apparatus and method for extracting topics |
Also Published As
Publication number | Publication date |
---|---|
KR20190127448A (en) | 2019-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11573996B2 (en) | System and method for hierarchically organizing documents based on document portions | |
CN103514183B (en) | Information search method and system based on interactive document clustering | |
US8909615B2 (en) | System and method of managing capacity of search index partitions | |
Jonnalagadda et al. | A new iterative method to reduce workload in systematic review process | |
Olariu | Efficient online summarization of microblogging streams | |
Bancken et al. | Automatically detecting and rating product aspects from textual customer reviews | |
CN108108426B (en) | Understanding method and device for natural language question and electronic equipment | |
WO2017092337A1 (en) | Comment tag extraction method and apparatus | |
US20130159348A1 (en) | Computer-Implemented Systems and Methods for Taxonomy Development | |
CN107688616B (en) | Make the unique facts of the entity appear | |
Pervin et al. | Fast, scalable, and context-sensitive detection of trending topics in microblog post streams | |
Yıldırım et al. | Identifying topics in microblogs using Wikipedia | |
US11036818B2 (en) | Method and system for detecting graph based event in social networks | |
Karkali et al. | Using temporal IDF for efficient novelty detection in text streams | |
CN115146062A (en) | Intelligent event analysis method and system fusing expert recommendation and text clustering | |
Maharjan et al. | A straightforward author profiling approach in mapreduce | |
Çelik et al. | Gender prediction from social media comments with artificial intelligence | |
KR102052823B1 (en) | Topic model automation method and apparatus using latent dirichlet allocation | |
KR102007437B1 (en) | Apparatus for classifying contents and method for using the same | |
Zhu et al. | Research on summary sentences extraction oriented to live sports text | |
JP2016218512A (en) | Information processing device and information processing program | |
KR102126911B1 (en) | Key player detection method in social media using KeyplayerRank | |
Camelin et al. | Frnewslink: a corpus linking tv broadcast news segments and press articles | |
Lee et al. | Automatic stop word generation for mining software artifact using topic model with pointwise mutual information | |
WO2019132648A1 (en) | System and method for identifying concern evolution within temporal and geospatial windows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |