중국어 은유
CCL 2018 공유과제 - 중국어 은유 인식 및 감성 분석
작업 설명
- 임무 세부정보: http://ir.dlut.edu.cn/news/detail/508
- 업데이트: 하위 작업 1은 2가지 범주로 구성된 작업입니다. 동사 은유인지 여부만 식별하면 됩니다.
- 시간: 마감 시간은 9시 30분입니다. 각 팀은 9월 9일, 9월 16일, 9월 23일, 9월 30일 매주 일요일 오후 10시 기준으로 결과를 제출할 수 있으며, 주 3회까지만 제출할 수 있으며, 마지막 제출 결과에 따라 결과를 계산합니다. 순위. 9월 10일, 17일, 24일, 10월 1일 오후 5시 이전에 홈페이지(http://ir.dlut.edu.cn/)에 공지됩니다.
- 훈련 데이터: http://ir.dlut.edu.cn/File/Download?cid=3 "CCL 2018 중국어 은유 인식 및 감성 분석 평가 데이터"
- 테스트 데이터(레이블 없음): http://ir.dlut.edu.cn/File/Download?cid=3 "CCL 2018 중국어 은유 인식 및 감성 분석 테스트 데이터"
- 알림: 주최자의 요구 사항에 따라 이 데이터 세트는 이 평가 작업에만 사용할 수 있습니다. 다른 용도로 사용하려면 주최자에게 문의하세요.
저장소 구조
- /Corpus: Penn StateUCMC 중국어 비유 코퍼스를 저장합니다(아직 사용되지 않음).
- /data: 훈련 및 테스트 데이터
- /dicts: 두 하위 작업의 관계형 사전과 어휘
- /memo: 회의록
- /model_structure: nn 모델의 구조 다이어그램
- /논문: 관련 문헌
- /pretrained_emb: 인터넷에서 다운로드한 사전 훈련된 단어 임베딩(wikipedia 기반), 필터링됨
- /src: 코드
- /results: 모델 평가 결과 및 생성된 테스트 라벨
- /models: 이 경로는 직접 작성해야 합니다. 아래에는 훈련된 모델을 저장하는 데 사용되는 두 가지 하위 경로인 /verb가 있습니다.
- /submission: 제출된 결과 파일, 날짜별로 저장됨
코드 구조
- 핵심 코드:
- conf.py: 다양한 매개변수 설정
- multi_cgru_keras.py: 모델 구조
- train.py: 훈련 데이터의 90%로 모델을 훈련합니다.
- eva_model.py: 훈련 데이터의 10%에 대한 모델 성능을 평가합니다.
- generate_test_labels.py: 테스트 세트의 라벨 예측
- 보조 코드:
- Split_data.py: 훈련 세트를 90%(훈련용)와 10%(모델 성능 평가용)로 분할합니다.
- back_translate.py: Google Translate API를 사용하여 학습 데이터 추가
- Convert_data.py: 데이터를 xml에서 txt로 변환하고 숫자 레이블을 이해하기 쉬운 텍스트 레이블로 변환합니다.
- data_provider.py: 데이터 읽기 및 학습 준비
- filter_wordemb.py: 훈련 및 테스트 데이터를 기반으로 사전 훈련된 단어 벡터를 필터링하고 데이터에 나타나는 단어만 유지합니다(현재 위키 단어 벡터는 필터링되었습니다).
코드 실행 방법
- conf.py에서 관련 매개변수 설정
- train.py를 실행하여 모델 학습
- eva_model.py를 실행하여 모델 성능 평가
- 세 번째 단계의 평가 결과를 바탕으로 성능이 더 좋은 모델을 선택하고 generate_test_labels를 사용하여 테스트 데이터 라벨을 생성합니다.
완료
- NN Baseline: CGRU 기준으로 최고의 성능(정확도)은 task1의 경우 약 70%, task2의 경우 약 39%입니다.
- 비교: 다수 기준선, task2 37%
- 비교: 감정 어휘를 기반으로 한 순진한 기준선, 기계 학습 없음, task2 51%
- NN Bseline을 기반으로 다음 기능을 사용해 보세요.
- 임베딩 레이어 최적화
- 모델 자체에서 학습한 임베딩을 대체하려면 사전 훈련된 임베딩을 사용하세요. task2의 최고 성능은 약 50%입니다.
- 워드 벡터 접합: 부드러운 매개변수 감소와 결합, task2 매크로 f - 39.6%
- 뒤로 번역
- Google 번역 6개 언어, 여러 필터링 방법 테스트, task2는 약 53%의 최고 성능을 가짐
- 기타 모델 구조
- Embedding을 분류 기능으로 직접 사용
- LSTM+완전 연결: task2 매크로 f - 40%
- 약간의 오류 분석:
- Overfitting이 심각한 것으로 관찰되어 l2(↑), dropout(↑), Smooth(↓)를 조정해 보았으나 큰 변화는 발견되지 않았으며, 동시에 동일 모델의 성능을 유지하는 것으로 확인되었습니다. 불안정했습니다(task2를 여러 번 실행하면 차이가 10%에 도달할 수 있음).
- 나쁜 사례 중 일부는 전환이 있는 문장입니다(예: "어떻게 그럴 수 없었습니까?", "할 수 없습니다", "이후" 등과 같은 단어가 포함되어 있습니다).
- 데이터의 주석 중 일부가 의심스러운 것으로 나타났습니다.
- 자가 학습 단어 임베딩에 사용할 수 있는 Penn State 중국어 은유 코퍼스를 얻습니다.
- 보충 훈련 코퍼스: 다른 영어 코퍼스를 사용하여 다시 번역하여 훈련 코퍼스를 보완합니다.
- 매개변수 조정
할 일 목록
- NN 기준을 기반으로 더 많은 기능을 사용해 보세요.
- 계속해서 Embedding 레이어를 최적화하세요.
- 다른 사전 훈련된 임베딩을 사용합니다(예: Penn State 은유 코퍼스, ELMo 임베딩 등에 대해 훈련된 임베딩).
- nn에 감정 어휘를 추가합니다.
- Embedding labels : 기존 방식은 진행형 관계(very neg, neg, neutral, pos, Very pos)를 갖는 레이블에만 사용됩니다.
- 동사와 명사의 하위 범주
- 종속관계
- 데이터를 관찰하여 두 하위 작업에서 기능어의 역할을 조사한 다음 모델에 추가할 기능어에 대한 정보를 결정합니다. 기능어: 어떤 종류의 정보가 도움이 되나요?
- 다른 모델 구조를 사용해 보세요.
- ('기본에는 더 많은 사랑이 필요함: 간단한 단어 임베딩 기반 모델 및 관련 풀링 메커니즘' 기사 참조)
- Transformer를 문장 인코더로 사용('Attention Is All You Need' 기사 참조)
자원
- Penn State 중국어 은유 코퍼스(http://www.personal.psu.edu/xxl13/download.html)
- 대련이공대학교 감정 어휘 온톨로지 라이브러리 (http://ir.dlut.edu.cn/EmotionOntologyDownload)
조직자
대련이공대학교 정보검색연구실