알아채다
현재 이 창고에는 프로젝트가 너무 많아서 유지 관리가 어렵습니다. 따라서 향후에는 다양한 업무가 분리되어 창고가 별도로 구축될 예정이며, 사용자가 모델을 쉽게 선택할 수 있도록 많은 비교 실험이 진행될 예정입니다. 필요한 경우 지정된 창고로 이동할 수 있으며 링크는 다음과 같습니다.
- 텍스트 분류 창고
- 의미론적 일치 창고
- 텍스트 생성 창고
- 다른 리포지토리의 업데이트 속도가 빨라지고 있습니다.
목차
- 챗봇
- 1. Bert_chatbot: UniLM과 유사
- 2. seq2seq_luong: 인코더는 2계층 gru 네트워크이고, 디코더는 1계층 gru 네트워크입니다. 인코더와 디코더 사이에 Luong 주의가 추가됩니다.
- 3. Transformer_chatbot: 표준 트랜스포머 모델
- 증류
- 1. DynaBert: Huawei의 작업은 주로 bert의 특정 구조를 자르기 위해 가지치기를 사용합니다.
- 2. rnn_distill_bert: lstm 네트워크 계층을 사용하여 bert 모델을 추출하고 소프트 라벨 손실만 추가합니다.
- 3. three_layer_self-attention_to_distill_bert: 이름을 보면 무슨 뜻인지 알 수 있을 것입니다. 단지 3층 변환기의 인코더를 작성한 다음 bert 모델을 증류하는 것뿐입니다.
- 4.tiny_bert: Huawei의 작업인tiny_bert의 증류 방법은 소프트 라벨 손실에 중간 계층의 평균 제곱 오차 손실을 추가하는 것입니다.
- 임베딩
- 1. Skipgram-word2vec: Skipgram을 사용하여 단어 벡터를 얻습니다.
- 2. bert: bert를 직접 훈련하거나, 처음부터 훈련하거나, 재훈련을 위해 이 코드를 사용합니다.
- 3. albert: Albert를 직접 훈련하고 처음부터 훈련할 수도 있습니다. 이 코드를 사용하여 재훈련할 수도 있습니다.
- 4. NPLM: 전통적인 접근 방식
- NER
- 1. Bert_CRF_Ner: Bert 모델과 서열 라벨링 작업을 위한 조건부 무작위 필드
- 2. Bert_Softmax_Ner: 시퀀스 주석을 위해 bert 모델을 직접 사용합니다.
- 3. BiLSTM_CRF_Ner: 시퀀스 라벨링 작업에 양방향 lstm 네트워크 및 crf를 사용합니다.
- NMT
- 1. GRU_attention: 인코더와 디코더는 모두 GRU 네트워크이며 중간에 공통 주의 메커니즘(직접 가중치 합)이 추가됩니다.
- 2. Transformers_NMT: 기계 번역을 위한 표준 변환기 구조
- Pretrain_Model
- 1. bert-pretrain: bert 모델을 재학습하려면 먼저 get_train_data.py를 통해 마스크 및 기타 작업에 필요한 단어의 15%를 포함하여 데이터 전처리를 수행한 다음 학습합니다.
- 2. wobert-pretrain: wobert의 사전 훈련 모델은 Su Shen이 제공합니다. 여기서 재훈련을 위해 직접 만든 단어 목록을 추가한 다음 bert의 단어 분할 방법을 수정할 수 있습니다.
- 독해_이해
- 1. BERT_MRC: bert를 사용하여 기계 독해 작업을 수행합니다. 여기에는 다이렉트 스테이지 방식이 채택될 것으로 예상된다.
- 2. BiDAF: 양방향 주의 흐름 메커니즘을 갖춘 기계 독해 모델
- 3. DocQA: 전통적인 모델
- 4. Match_LSTM: 전통적인 모델, 간단한 rnn 구조.
- 5. QANet: 비교적 전통적인 모델이기도 하지만 이 모델은 rnn 구조를 버린 최초의 mrc 모델이기도 하며 mrc 작업에 self-attention 메커니즘을 도입한 최초의 모델이기도 합니다.
- 6. RNet: 기존 모델
- 7. Recurrence-hotpot-baseline: 처음으로 다중 홉 추론을 처리하기 위해 rnn 구조를 사용하는 문제가 생성되었습니다. hotpotqa 데이터 세트에는 답변이 포함된 예측 외에도 지원 사실에 대한 예측도 있습니다. 그리고 관련 단락의 예측.
- 8. albert_mrc: albert 사전 훈련된 모델을 사용하여 mrc 작업 수행
- 9.lectra_bert: mrc 작업을 수행하기 위해 사전 훈련된 일렉트라 모델을 사용합니다.
- 10. mrc_baseline: mrc 작업을 수행하는 경우 먼저 이 코드를 읽어 보는 것이 좋습니다. 여기에는 긴 텍스트 처리(슬라이딩 윈도우), 답변 정렬, 적대적 훈련 등 mrc가 주의하는 다양한 세부 정보가 포함되어 있습니다.
- 11. roberta_mrc: roberta 사전 훈련된 모델을 사용하여 mrc 작업 수행
- 12. Transformer+rnn+attention: 이 프로젝트는 seq2seq 방법을 직접 사용하여 생성적 독해를 위한 것입니다. 인코더는 변환기의 인코더를 사용하고 디코더는 gru 구조를 사용하며 중간에 일반 주의 레이어가 추가됩니다. 기구.
- 13. Transformer_reading: 이 프로젝트는 표준 변환기 구조를 사용하는 생성적 독해에 관한 프로젝트이기도 합니다.
- 슬롯_채우기
- 1. JointBert: 의도 분류 및 슬롯 분류가 포함됩니다. bert를 직접 사용하여 입력을 인코딩하고 의도 분류를 위해 "CLS" 벡터를 사용합니다. 각 토큰의 최종 인코딩 벡터는 슬롯 분류에 사용됩니다.
- 텍스트_분류
- 1. DPCNN: Deep Convolutional Network + Residual Connection으로 인해 이 모델은 이전 CNN 구조보다 우수하며 복잡성도 높지 않습니다.
- 2. FastBert: 자체 증류 방법을 사용하여 모델 추론 속도를 높입니다. 주로 분류 작업에 사용됩니다.
- 3. FastText: Facebook에서 제안한 효율적인 텍스트 분류 모델입니다.
- 4. XLNet: 1) 가능한 모든 인수분해 순서의 로그 우도를 최대화하여 양방향 문맥 정보를 학습합니다. 2) BERT의 단점을 극복하기 위해 자기회귀 자체의 특성을 사용합니다. 또한 XLNet은 현재 최적의 자동 회귀 모델 Transformer-XL의 아이디어도 통합합니다.
- 5. all_layer_out_concat: 이름에서 알 수 있듯이 이 프로젝트는 bert 스타일 모델을 통해 텍스트를 인코딩한 후 각 레이어의 cls 벡터를 꺼내어 attention 계산을 수행한 후 분류를 수행합니다.
- 6. bert+bceloss+average_checkpoint: 이 프로젝트는 분류 작업의 손실 함수를 BCELoss로 변경하고 추가된 가중치 평균(평균 다중 체크포인트)입니다.
- 7. capsule_text_classification: 텍스트 분류를 위한 GRU+캡슐
- 8. longformer_classification: 텍스트 분류를 위해 사전 훈련된 모델 longformer를 사용합니다. 긴 텍스트를 분류하려면 이 모델을 사용해 볼 수 있습니다.
- 9. multi_label_classify_bert: 다중 라벨 분류를 위해 bert 모델을 사용합니다. 여기에는 bert(model.py), bert의 마지막 두 풀링 레이어(model2.py) 및 bert+TextCNN(model3.py)의 세 가지 모델이 포함되어 있습니다.
- 10. roberta_classification: 텍스트 분류를 위해 사전 훈련된 roberta 모델을 사용합니다.
- 11. Transformer_xl: 텍스트 분류를 위해 Transformer_xl을 직접 사용할 수 있습니다. 긴 텍스트 분류를 위해 이 모델을 사용해 볼 수 있습니다.
- 12. wobert+focus_loss: wobert 사전 훈련 모델은 Su Shen이 제공하며 카테고리 불균형 문제를 해결하기 위해 분류 작업에 초점 손실이 추가됩니다.
- 13. TextCNN: 텍스트를 다양한 규모로 컨볼루션한 다음 텍스트 분류를 위해 연결합니다.
- 14. BILSTM+Attention: 양방향 LSTM 네트워크에 텍스트 분류를 위한 일반 주의를 더한 것입니다.
- 텍스트_클러스터링
- 1. LDA 클러스터링
- 2.DBSCAN
- 3. Kmeans
- 텍스트_수정자
- 1. bert_for_correction: 해당 코퍼스를 재학습하여 오타가 있는 문장을 입력한 후 각 토큰의 인코딩 벡터를 분류하는 간단한 시도일 뿐입니다.
- 텍스트_세대
- 1. GPT2_SummaryGen: GPT2를 사용하여 요약을 생성합니다.
- 2. GPT2_TitleGen: 기사 제목 생성
- 3. Simple-GPT2: 자체 구현된 GPT2 모델
- 텍스트_순위
- 1. BM25: 정렬할 쿼리와 모든 텍스트의 BM25 값을 계산한 후 이 값을 기준으로 정렬합니다.
- 2. DC_Bert_Ranking: 트윈 타워 + 상호 작용. 먼저 쿼리와 컨텍스트가 별도로 인코딩되고 여기서 가중치가 공유되지 않습니다. 그런 다음 쿼리와 컨텍스트의 인코딩이 혼합된 후 대화형 변환기-인코더의 여러 계층을 통과합니다.
- 3. DPR_Ranking: Facebook의 텍스트 순위 모델
- 4. MT_Ranking: 인코딩에 bert 스타일 모델을 사용한 다음 분류에 cls를 사용하고 양성 샘플의 점수를 기준으로 정렬합니다.
- 5. 순위 재지정: 모델 추출 포함
- 텍스트_유사성
- 1. ABCNN: 먼저 두 문장에 대해 단어 임베딩을 수행한 다음 풀링을 수행하여 두 문장의 벡터를 얻은 다음 두 벡터 간의 차이를 계산하고 마지막으로 차이 벡터에 대해 서로 다른 규모의 컨볼루션을 수행한 다음 분류합니다.
- 2. BiMPM: 이 모델은 단어 임베딩, 컨텍스트 인코딩(bilstm), 4가지 매칭 유형, 집계 계층의 네 부분으로 나뉩니다.
- 3. DecomposableAttention: 본 논문의 핵심은 정렬, 즉 단어 간의 대응이다. 다른 하나는 비교 부분에서 두 문장 사이의 단어를 비교하고 각 처리는 단어를 기반으로 하며 마지막으로 피드포워드 신경망을 사용하여 예측을 수행합니다. 본 글에서 언급된 모델은 문장 내 단어의 시간적 관계를 활용하지 않고, 두 문장 내 단어 간의 대응(정렬)을 강조한다는 점은 분명합니다.
- 4. ESIM: 짧은 텍스트 매칭 도구. ESIM의 가장 큰 장점은 코드의 Soft_align_attention인 문장 간 주의입니다. 이 단계에서는 비교할 두 문장이 상호 작용합니다. Siamese 네트워크와 유사한 이전 구조에서는 중간에 상호 작용이 없는 경우가 많았으며 마지막 레이어에서는 코사인 거리나 다른 거리만 발견되었습니다.
- 5. RE2: RE2라는 이름은 네트워크의 세 가지 중요한 부분, 즉 잔여 벡터, 인코딩된 벡터의 조합에서 유래되었습니다.
- 6. SiaGRU: 트윈 타워 구조, GRU를 사용하여 각각 두 문장을 인코딩한 다음 두 문장 인코딩 벡터 간의 차이를 계산하고 마지막으로 이 차이 벡터를 분류에 사용합니다.
- 7. SimCSE: 대조 학습, 기술: 다양한 샘플, 다양한 Dropout
- 8. BM25: 두 텍스트의 BM25 값을 직접 계산하여 유사도를 나타냅니다.
- 9. TF_IDF: 두 텍스트의 TF_IDF 값을 직접 계산하여 유사성을 나타냅니다.
- 10. NEZHA_Coattention: 트윈 타워 구조를 채택합니다. NEZHA 모델에 각각 두 개의 문장을 입력한 다음 입력을 차별화하고 원래 표현과 접합한 다음 분류를 위해 완전히 연결된 네트워크로 보냅니다. 또 다른 모델은 두 문장의 표현을 얻은 후 변환기-인코더 계층을 구현하여 표현 정보를 융합하고 최종적으로 분류하는 모델입니다.
- 11. Bert_Whitening: Su Jianlin이 제안한 방법은 훈련이 필요하지 않으며 각 문장의 bert 출력을 표준 정규 직교 기반으로 직접 통합합니다.
- 데이터 증강
- 1. eda: 데이터 증대를 위해 nlpcda 툴킷을 사용합니다. 예: 등가 엔터티 대체, 무작위 동의어 대체, 문자 무작위 삭제, 위치 교환, 동음이의어 대체.
- 2. 역번역-바이두: 텍스트 역번역에는 바이두 번역을 사용하세요.
- 3. 역번역-구글: 텍스트 역번역을 위해 Google 번역을 사용합니다.
- 관계_추출
- 1. lstm_cnn_information_extract: lstm+cnn
- 2. 관계_분류: 관계 분류, bilstm+보통주의
NLP_pytorch_project
챗봇
1. Bert_chatbot: UniLM과 유사
- python train.py # 훈련 코드
- python infernece.py # 모델 추론
2. seq2seq_luong: 인코더는 2계층 gru 네트워크이고, 디코더는 1계층 gru 네트워크입니다. 인코더와 디코더 사이에 Luong 주의가 추가됩니다.
- python train.py # 훈련 코드
- python inference.py # 모델 추론
3. Transformer_chatbot: 표준 트랜스포머 모델
- python train.py # 훈련 코드
- python chat.py # 채팅에 사용할 수 있는 학습 데이터는 Qingyun 대화 자료입니다.
증류
1. DynaBert: Huawei의 작업은 주로 bert의 특정 구조를 자르기 위해 가지치기를 사용합니다.
- python train_teacher_model.py # 교사 모델 훈련
- python train_tailor_model.py # 교사 모델 정리
2. rnn_distill_bert: lstm 네트워크 계층을 사용하여 bert 모델을 추출하고 소프트 라벨 손실만 추가합니다.
- python train_bert.py # 기차 교사 모델 bert
- python train_distill.py # Distillation은 lstm을 사용하여 bert의 출력을 학습합니다.
3. three_layer_self-attention_to_distill_bert: 이름을 보면 무슨 뜻인지 알 수 있을 것입니다. 단지 3층 변환기의 인코더를 작성한 다음 bert 모델을 증류하는 것뿐입니다.
- python train_bert.py # 기차 교사 모델 bert
- python train_distill.py # 증류
4.tiny_bert: Huawei의 작업인tiny_bert의 증류 방법은 소프트 라벨 손실에 중간 계층의 평균 제곱 오차 손실을 추가하는 것입니다.
- python train.py # 기차 교사 모델 bert
- python train_distill_v2.py # 증류
임베딩
1. Skipgram-word2vec: Skipgram을 사용하여 단어 벡터를 얻습니다.
- 파이썬 001-skipgram-word2vec.py
2. bert: bert를 직접 훈련하거나, 처음부터 훈련하거나, 재훈련을 위해 이 코드를 사용합니다.
3. albert: Albert를 직접 훈련하고 처음부터 훈련할 수도 있습니다. 이 코드를 사용하여 재훈련할 수도 있습니다.
4. NPLM: 전통적인 접근 방식
NER
1. Bert_CRF_Ner: Bert 모델과 서열 라벨링 작업을 위한 조건부 무작위 필드
- python run_ner_crf.py # 모델 훈련
- python inference.py # 모델 추론
2. Bert_Softmax_Ner: 시퀀스 주석을 위해 bert 모델을 직접 사용합니다.
- python train.py # 모델 훈련
- python inference.py # 모델 추론
3. BiLSTM_CRF_Ner: 시퀀스 라벨링 작업에 양방향 lstm 네트워크 및 crf를 사용합니다.
NMT
1. GRU_attention: 인코더와 디코더는 모두 GRU 네트워크이며 중간에 공통 주의 메커니즘(직접 가중치 합)이 추가됩니다.
2. Transformers_NMT: 기계 번역을 위한 표준 변환기 구조
Pretrain_Model
1. bert-pretrain: bert 모델을 재학습하려면 먼저 get_train_data.py를 통해 마스크 및 기타 작업에 필요한 단어의 15%를 포함하여 데이터 전처리를 수행한 다음 학습합니다.
- python get_train_data.py #데이터 전처리
- python run_pretrain.py # 재훈련
2. wobert-pretrain: wobert의 사전 훈련 모델은 Su Shen이 제공합니다. 여기서 재훈련을 위해 직접 만든 단어 목록을 추가한 다음 bert의 단어 분할 방법을 수정할 수 있습니다.
- python process_pretrain_data.py #데이터 전처리
- python run_pretrain.py # 재훈련
독해_이해
1. BERT_MRC: bert를 사용하여 기계 독해 작업을 수행합니다. 여기에는 다이렉트 스테이지 방식이 채택될 것으로 예상된다.
2. BiDAF: 양방향 주의 흐름 메커니즘을 갖춘 기계 독해 모델
- python data_process.py # 먼저 데이터 전처리
- python train_bidaf.py # 모델 훈련
3. DocQA: 전통적인 모델
- python data_process.py # 먼저 데이터 전처리
- python train_DocQA.py # 모델 훈련
4. Match_LSTM: 전통적인 모델, 간단한 rnn 구조.
- python data_process.py # 먼저 데이터 전처리
- python train_Match_Lstm.py # 모델 훈련
5. QANet: 비교적 전통적인 모델이기도 하지만 이 모델은 rnn 구조를 버린 최초의 mrc 모델이기도 하며 mrc 작업에 self-attention 메커니즘을 도입한 최초의 모델이기도 합니다.
- python data_process.py #데이터 전처리
- python train.py # 모델 훈련
6. RNet: 기존 모델
- python data_process.py #데이터 전처리
- python train_RNet.py # 모델 훈련
7. Recurrence-hotpot-baseline: 처음으로 다중 홉 추론을 처리하기 위해 rnn 구조를 사용하는 문제가 생성되었습니다. hotpotqa 데이터 세트에는 답변이 포함된 예측 외에도 지원 사실에 대한 예측도 있습니다. 그리고 관련 단락의 예측.
- python data_process.py #데이터 전처리
- python train.py # 모델 훈련
8. albert_mrc: albert 사전 훈련된 모델을 사용하여 mrc 작업 수행
- python train_update.py # 훈련 모델
- python inference.py #단일 데이터에 대한 추론
- python inference_all.py #모든 데이터에 대한 추론
9.lectra_bert: mrc 작업을 수행하기 위해 사전 훈련된 일렉트라 모델을 사용합니다.
- python run_cail.py #훈련 모델
- python estimate.py # 모델 평가
10. mrc_baseline: mrc 작업을 수행하는 경우 먼저 이 코드를 읽어 보는 것이 좋습니다. 여기에는 긴 텍스트 처리(슬라이딩 윈도우), 답변 정렬, 적대적 훈련 등 mrc가 주의하는 다양한 세부 정보가 포함되어 있습니다.
11. roberta_mrc: roberta 사전 훈련된 모델을 사용하여 mrc 작업 수행
12. Transformer+rnn+attention: 이 프로젝트는 seq2seq 방법을 직접 사용하여 생성적 독해를 위한 것입니다. 인코더는 변환기의 인코더를 사용하고 디코더는 gru 구조를 사용하며 중간에 일반 주의 레이어가 추가됩니다. 기구.
- python train.py # 모델 훈련
- python inference.py # 모델 추론
13. Transformer_reading: 이 프로젝트는 표준 변환기 구조를 사용하는 생성적 독해에 관한 프로젝트이기도 합니다.
- python train.py # 모델 훈련
- python inference.py # 모델 추론
슬롯_채우기
1. JointBert: 의도 분류 및 슬롯 분류가 포함됩니다. bert를 직접 사용하여 입력을 인코딩하고 의도 분류를 위해 "CLS" 벡터를 사용합니다. 각 토큰의 최종 인코딩 벡터는 슬롯 분류에 사용됩니다.
텍스트_분류
1. DPCNN: Deep Convolutional Network + Residual Connection으로 인해 이 모델은 이전 CNN 구조보다 우수하며 복잡성도 높지 않습니다.
- python get_data_to_examples.py # 데이터 전처리
- python example_to_features.py # 해당 예제를 기능으로 변환
- python train.py # 모델 훈련
2. FastBert: 자체 증류 방법을 사용하여 모델 추론 속도를 높입니다. 주로 분류 작업에 사용됩니다.
- sh train_stage0.sh # 기차 선생님 모델 bert
- sh train_stage1.sh # 자가 증류
- sh infer_sigle.sh # 적응형 추론 단일 샘플
3. FastText: Facebook에서 제안한 효율적인 텍스트 분류 모델입니다.
- python step1_get_data_to_examples.py # 데이터 가져오기
- python step2_examples_to_features.py # 텍스트 데이터를 ID 시퀀스로 변환
- python train.py # 모델 훈련
4. XLNet: 1) 가능한 모든 인수분해 순서의 로그 우도를 최대화하여 양방향 문맥 정보를 학습합니다. 2) BERT의 단점을 극복하기 위해 자기회귀 자체의 특성을 사용합니다. 또한 XLNet은 현재 최적의 자동 회귀 모델 Transformer-XL의 아이디어도 통합합니다.
5. all_layer_out_concat: 이름에서 알 수 있듯이 이 프로젝트는 bert 스타일 모델을 통해 텍스트를 인코딩한 후 각 레이어의 cls 벡터를 꺼내어 attention 계산을 수행한 후 분류를 수행합니다.
- python train.py # 모델 훈련
- Python inference.py # 모델 추론
6. bert+bceloss+average_checkpoint: 이 프로젝트는 분류 작업의 손실 함수를 BCELoss로 변경하고 추가된 가중치 평균(평균 다중 체크포인트)입니다.
- python run_classify.py # 모델 훈련
- python run_average_checkpoints.py # 체중 평균
7. capsule_text_classification: 텍스트 분류를 위한 GRU+캡슐
8. longformer_classification: 텍스트 분류를 위해 사전 훈련된 모델 longformer를 사용합니다. 긴 텍스트를 분류하려면 이 모델을 사용해 볼 수 있습니다.
9. multi_label_classify_bert: 다중 라벨 분류를 위해 bert 모델을 사용합니다. 여기에는 bert(model.py), bert의 마지막 두 풀링 레이어(model2.py) 및 bert+TextCNN(model3.py)의 세 가지 모델이 포함되어 있습니다.
- python train.py # 모델 훈련
- python inference.py # 모델 예측
10. roberta_classification: 텍스트 분류를 위해 사전 훈련된 roberta 모델을 사용합니다.
11. Transformer_xl: 텍스트 분류를 위해 Transformer_xl을 직접 사용할 수 있습니다. 긴 텍스트 분류를 위해 이 모델을 사용해 볼 수 있습니다.
12. wobert+focus_loss: wobert 사전 훈련 모델은 Su Shen이 제공하며 카테고리 불균형 문제를 해결하기 위해 분류 작업에 초점 손실이 추가됩니다.
- python run_classify.py # 모델 훈련
13. TextCNN: 텍스트를 다양한 규모로 컨볼루션한 다음 텍스트 분류를 위해 연결합니다.
- python 001-TextCNN.py # 모델 훈련
14. BILSTM+Attention: 양방향 LSTM 네트워크에 텍스트 분류를 위한 일반 주의를 더한 것입니다.
- python 002-BILSTM+Attention.py # 모델 훈련
텍스트_클러스터링
1. LDA 클러스터링
- python train_LDA_cluster.py # 클러스터링
2.DBSCAN
- python train_dbscan_cluster.py # 클러스터링
3. Kmeans
- python train_kmeans_cluster.py # 클러스터링
텍스트_수정자
1. bert_for_correction: 해당 코퍼스를 재학습하여 오타가 있는 문장을 입력한 후 각 토큰의 인코딩 벡터를 분류하는 간단한 시도일 뿐입니다.
- python run_pretrain_bert.py # 재훈련
- bert_corrector.py # 오류 수정
텍스트_세대
1. GPT2_SummaryGen: GPT2를 사용하여 요약을 생성합니다.
- python train.py # 모델 훈련
- python inferface.py # 모델 추론
2. GPT2_TitleGen: 기사 제목 생성
- python train.py # 모델 훈련
- python inference.py # 모델 추론
3. Simple-GPT2: 자체 구현된 GPT2 모델
- python train.py # 모델 훈련
- python inference.py # 모델 추론
텍스트_순위
1. BM25: 정렬할 쿼리와 모든 텍스트의 BM25 값을 계산한 후 이 값을 기준으로 정렬합니다.
2. DC_Bert_Ranking: 트윈 타워 + 상호 작용. 먼저 쿼리와 컨텍스트가 별도로 인코딩되고 여기서 가중치가 공유되지 않습니다. 그런 다음 쿼리와 컨텍스트의 인코딩이 혼합된 후 대화형 변환기-인코더의 여러 계층을 통과합니다.
- python train.py # 모델 훈련
- python inference.py # 모델 추론
3. DPR_Ranking: Facebook의 텍스트 순위 모델
4. MT_Ranking: 인코딩에 bert 스타일 모델을 사용한 다음 분류에 cls를 사용하고 양성 샘플의 점수를 기준으로 정렬합니다.
- python train.py # 모델 훈련
- python inference.py # 모델 추론
5. 순위 재지정: 모델 추출 포함
- python train.py # 모델 훈련
- python train_distill.py # 모델 증류
텍스트_유사성
1. ABCNN: 먼저 두 문장에 대해 단어 임베딩을 수행한 다음 풀링을 수행하여 두 문장의 벡터를 얻은 다음 두 벡터 간의 차이를 계산하고 마지막으로 차이 벡터에 대해 서로 다른 규모의 컨볼루션을 수행한 다음 분류합니다.
2. BiMPM: 이 모델은 단어 임베딩, 컨텍스트 인코딩(bilstm), 4가지 매칭 유형, 집계 레이어의 네 부분으로 나뉩니다.
3. DecomposableAttention: 본 논문의 핵심은 정렬, 즉 단어 간의 대응이다. 다른 하나는 비교 부분에서 두 문장 사이의 단어를 비교하고 각 처리는 단어를 기반으로 하며 마지막으로 피드포워드 신경망을 사용하여 예측을 수행합니다. 본 글에서 언급된 모델은 문장 내 단어의 시간적 관계를 활용하지 않고, 두 문장 내 단어 간의 대응(정렬)을 강조한다는 점은 분명합니다.
4. ESIM: 짧은 텍스트 매칭 도구. ESIM의 가장 큰 장점은 코드의 Soft_align_attention인 문장 간 주의입니다. 이 단계에서는 비교할 두 문장이 상호 작용합니다. Siamese 네트워크와 유사한 이전 구조에서는 중간에 상호 작용이 없는 경우가 많았으며 마지막 레이어에서는 코사인 거리나 다른 거리만 발견되었습니다.
5. RE2: RE2라는 이름은 네트워크의 세 가지 중요한 부분, 즉 잔여 벡터, 인코딩된 벡터의 조합에서 유래되었습니다.
6. SiaGRU: 트윈 타워 구조, GRU를 사용하여 각각 두 문장을 인코딩한 다음 두 문장 인코딩 벡터 간의 차이를 계산하고 마지막으로 이 차이 벡터를 분류에 사용합니다.
7. SimCSE: 대조 학습, 기술: 다양한 샘플, 다양한 Dropout
8. BM25: 두 텍스트의 BM25 값을 직접 계산하여 유사도를 나타냅니다.
9. TF_IDF: 두 텍스트의 TF_IDF 값을 직접 계산하여 유사성을 나타냅니다.
10. NEZHA_Coattention: 트윈 타워 구조를 채택합니다. NEZHA 모델에 각각 두 개의 문장을 입력한 다음 입력을 차별화하고 원래 표현과 접합한 다음 분류를 위해 완전히 연결된 네트워크로 보냅니다. 또 다른 모델은 두 문장의 표현을 얻은 후 변환기-인코더 계층을 구현하여 표현 정보를 융합하고 최종적으로 분류하는 모델입니다.
11. Bert_Whitening: Su Jianlin이 제안한 방법은 훈련이 필요하지 않으며 각 문장의 bert 출력을 표준 정규 직교 기반으로 직접 통합합니다.
- python run_bert_whitening.py # 데이터 세트를 직접 확인하고 Spearman 계수를 계산합니다.
데이터 증강
1. eda: 데이터 증대를 위해 nlpcda 툴킷을 사용합니다. 예: 등가 엔터티 대체, 무작위 동의어 대체, 문자 무작위 삭제, 위치 교환, 동음이의어 대체.
2. 역번역-바이두: 텍스트 역번역에는 바이두 번역을 사용하세요.
- 파이썬 002-run_contrslate_data_aug.py
3. 역번역-구글: 텍스트 역번역을 위해 Google 번역을 사용합니다.
- 파이썬 003-google_trans_data_aug.py
관계_추출
1. lstm_cnn_information_extract: lstm+cnn
- python train.py # 모델 훈련
- python inference.py # 모델 추론
2. 관계_분류: 관계 분류, bilstm+보통주의
- python data_helper.py #데이터 전처리
- python train.py # 모델 훈련
스타의 역사