논문 구현 (특허 문서에서 부트 스트랩 기술을 사용하여 과제 및 효과 표현 쌍 추출) - 준비
「특허문서로부터의 부트스트랩 수법을 이용한 과제·효과 표현쌍의 추출」이라고도.
현재 다소는 프로그래밍 할 수 있게 되어, 구현하고 싶다고 생각해, 우선 논문을 소화하는 것에.
덧붙여서 사카지라는 것은 사카치 선생님 한 번도 만난 적은 없지만 관계자를 만난 적이 있습니다.
20200107 추가:
계속
1. 목적
'과제'와 '효과'를 효율적으로 추출하고 싶다.
2.논문의 내용
이하 「아마 이렇게 될 것이다」라고 하는 결과.
크로스 부트 스트랩이라고 하는 대로 크로스 한다.
무엇을 교차하는가?
그리고
두 가지를 오가는 (서로 교차하여 추출), 고구마 식에 과제 관련 표현과 효과 관련 표현을 얻는다. (라고 생각된다)
그림은 논문에서 참조
이하 정리
표현
패턴
동사/명사 후보
표현 추출 패턴
과제 단서 표현
.*(격조사).*(과제 단서 표현).*(효과 단서 표현)
과제동사=왼쪽의 격조사
과제 단서 표현 후보=.*(과제 동사).*, .*(효과 단서 표현)의 「.*,」 부분
효과 단서 표현①=「일」형
.*(과제 단서 표현).*(격조사).*(효과 단서 표현)
효과동사=왼쪽의 격조사
.*(과제 단서 표현).*(효과 동사).*. ".*."부분
효과 단서 표현②=동사형
.* (과제 단서 표현). * (명사) (효과 단서 표현)
효과 명사 = 왼쪽의 명사
.*(과제 단서 표현)*(효과 명사).*. 의 ".*."부분
「과제/효과」와 「단서 표현」으로 머리가 곤란해져 오지만,
어떻게든 이해.
스코어의 계산식은 각각 미묘하게 다르지만, 일례로서 과제 단서 표현의 스코어 계산식.
실험 결과를 보면, 루프수 3에서 스코어의 임계치 α=0.5로 성능이 좋은 것 같다.
3. 도중까지 구현.
수식을 만들고 있는 동안에 막다른다. 특히 품사에 근거한 판정과 단어 자체에 근거한 판정이 섞여있는 동안
자신이 무엇을 하고 싶었는지 모르게 된다. 어떻게든 타개하고 싶다. 사전 사용할 수 있어 어떻게든 상당히 그렇게 생각한다.
import math
import re
def calc_score(list_S,listE,extract_list,texts):
return H(list_S,list_E,extract_list,texts)/(math.log2(len(list_S)*len(list_E))+1)
def H(list_S,list_E,extract_list,texts):
score = 0
for i in range(0,len(list_S)):
for j in range(0,len(list_E)):
score += -P(list_S[i],list_E[j],extract_list,texts)*
math.log2(P(list_S[i],list_E[j],extract_list,texts))
return score
def P(x,y,extract_list,texts):
#x,yはともに候補の集合(リスト)
return co_ocu(x,y,texts)/len(extract_list) # numN=抽出対象の表現の数
def co_ocu(x,y,texts):
count_co_ocu = 0
for text in texts:
if text.find(x) and text.find(y):
count_co_ocu += 1
else:
pass
return count_co_ocu
def get_effect(sentence,S,E):
re.find(*.(格助詞).*S.*E。) #あれれれ
Reference
이 문제에 관하여(논문 구현 (특허 문서에서 부트 스트랩 기술을 사용하여 과제 및 효과 표현 쌍 추출) - 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/niship2/items/1ba5eadd9183534179a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import math
import re
def calc_score(list_S,listE,extract_list,texts):
return H(list_S,list_E,extract_list,texts)/(math.log2(len(list_S)*len(list_E))+1)
def H(list_S,list_E,extract_list,texts):
score = 0
for i in range(0,len(list_S)):
for j in range(0,len(list_E)):
score += -P(list_S[i],list_E[j],extract_list,texts)*
math.log2(P(list_S[i],list_E[j],extract_list,texts))
return score
def P(x,y,extract_list,texts):
#x,yはともに候補の集合(リスト)
return co_ocu(x,y,texts)/len(extract_list) # numN=抽出対象の表現の数
def co_ocu(x,y,texts):
count_co_ocu = 0
for text in texts:
if text.find(x) and text.find(y):
count_co_ocu += 1
else:
pass
return count_co_ocu
def get_effect(sentence,S,E):
re.find(*.(格助詞).*S.*E。) #あれれれ
Reference
이 문제에 관하여(논문 구현 (특허 문서에서 부트 스트랩 기술을 사용하여 과제 및 효과 표현 쌍 추출) - 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/niship2/items/1ba5eadd9183534179a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)