Python을 사용하여 텍스트의 표절을 검사하는 방법
소개
안녕하십니까,
이 강좌에서 우리는 몇 줄 코드에서 기계 학습 기술(예를 들어word2vec와 여현의 유사성)을 사용하여 Python에서 표절 검출기를 만드는 방법을 배울 것이다.
개요
일단 완성되면, 우리의 표절 검측기는 문서에서 학생들의 숙제를 불러온 다음, 유사도를 계산하여 학생들이 서로 표절했는지 여부를 확정할 수 있을 것이다.
요구 사항
이 강좌를 완성하기 위해서는 기계에scikitlearn을 설치해야 합니다.
설치
pip install -U scikit-learn
우리는 어떻게 텍스트를 분석합니까?
우리는 컴퓨터가 0과 1만 이해할 수 있다는 것을 알고 있다. 텍스트 데이터에 대한 계산을 하기 위해서는 텍스트를 숫자로 바꾸는 방법이 필요하다.
텍스트 포함
텍스트 데이터를 디지털 그룹으로 변환하는 과정을 통상적으로 문자 삽입이라고 부른다.
텍스트 데이터의 벡터를 벡터로 바꾸는 것은 무작위 과정이 아니라 일부 알고리즘을 따라 문자를 공간의 한 위치로 표시한다.우리는 scikit 학습 내장 기능을 사용하여 이 점을 실현할 것이다.
우리는 어떻게 문서의 유사성을 검사합니까?
여기서 우리는 벡터의 기본 개념, 점적을 사용하여 학생 텍스트 작업의 벡터 표시 간의 여현 유사성 값을 계산하여 두 텍스트의 유사도를 확정할 것이다.
그 밖에 학생 숙제가 있는 샘플 텍스트 문서가 필요합니다. 우리는 모델을 테스트할 때 사용할 것입니다.
텍스트 파일은 스크립트와 같은 디렉터리에 있어야 합니다. 확장자는 입니다.txt, 이 강좌에서 사용한 예시 텍스트 파일을 사용하고 싶다면download here
프로젝트 디렉터리는 다음과 같이 해야 한다
.
├── app.py
├── fatma.txt
├── image.png
├── john.txt
└── juma.txt
이제 표절 검출기를 구축합시다
import os
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
우리는 운영체제 모듈을 사용하여 텍스트 파일을 불러오는 경로를 사용하고 TfidfVectorizer는 텍스트 데이터에 단어를 삽입하고 여현 유사도를 사용하여 표절을 계산합니다.student_files = [doc for doc in os.listdir() if doc.endswith('.txt')]
vectorize = lambda Text: TfidfVectorizer().fit_transform(Text).toarray()
similarity = lambda doc1, doc2: cosine_similarity([doc1, doc2])
vectors = vectorize(student_notes)
s_vectors = list(zip(student_files, vectors))
def check_plagiarism():
plagiarism_results = set()
global s_vectors
for student_a, text_vector_a in s_vectors:
new_vectors =s_vectors.copy()
current_index = new_vectors.index((student_a, text_vector_a))
del new_vectors[current_index]
for student_b , text_vector_b in new_vectors:
sim_score = similarity(text_vector_a, text_vector_b)[0][1]
student_pair = sorted((student_a, student_b))
score = (student_pair[0], student_pair[1],sim_score)
plagiarism_results.add(score)
return plagiarism_results
Let’s print plagiarism results
for data in check_plagiarism():
print(data)
import os
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
student_files = [doc for doc in os.listdir() if doc.endswith('.txt')]
student_notes =[open(File).read() for File in student_files]
vectorize = lambda Text: TfidfVectorizer().fit_transform(Text).toarray()
similarity = lambda doc1, doc2: cosine_similarity([doc1, doc2])
vectors = vectorize(student_notes)
s_vectors = list(zip(student_files, vectors))
def check_plagiarism():
plagiarism_results = set()
global s_vectors
for student_a, text_vector_a in s_vectors:
new_vectors =s_vectors.copy()
current_index = new_vectors.index((student_a, text_vector_a))
del new_vectors[current_index]
for student_b , text_vector_b in new_vectors:
sim_score = similarity(text_vector_a, text_vector_b)[0][1]
student_pair = sorted((student_a, student_b))
score = (student_pair[0], student_pair[1],sim_score)
plagiarism_results.add(score)
return plagiarism_results
for data in check_plagiarism():
print(data)
$ python app.py
#__________RESULT ___________
('john.txt', 'juma.txt', 0.5465972177348937)
('fatma.txt', 'john.txt', 0.14806887549598566)
('fatma.txt', 'juma.txt', 0.18643448370323362)
방금 Python으로 표절 탐지기를 제작한 것을 축하합니다. 이제 동갑내기와 공유해서 공유해 주십시오.만약 어떤 평론, 건의, 어려움이 있다면, 그것을 아래의 평론 상자에 넣으십시오. 저는 가능한 한 빨리 당신에게 회답할 것입니다.
original article 에서 찾을 수 있습니다.
kalebujordan。통신 / 카레브
이것은 여현의 유사성을 사용하여 텍스트 문서의 표절을 검사하는 간단한 항목이다
표절 검사자Python
이 보고서는python 스크립트의 원본 코드로 구성되어 있으며, 여현 유사성을 사용하여 텍스트 문서의 표절을 검사하는 데 사용됩니다
Plagiarism-checker-Python
이거 어떻게 하는 거예요?
텍스트 데이터에 대한 표절 검사를 어떻게 하는지 알고 싶을 수도 있지만, 생각보다 복잡하지 않다.
우리는 모두 컴퓨터가 숫자에 뛰어나다는 것을 알고 있기 때문에 두 텍스트 문서 간의 유사성을 계산하기 위해 텍스트 원시 데이터는 벡터 = > 디지털 수조로 변환된 다음에 우리는 기본 지식 벡터를 사용하여 그것들 간의 유사성을 계산할 것이다.
본 환매 협의는 이 점을 어떻게 하는지에 관한 기본적인 예시를 포함하고 있다.
입문
이 리포의 코드를 사용하기 시작하려면 이 리포를 복제하거나 기계에 다운로드해야 합니다. 아래와 같습니다.
$->git 클론https://github.com/Kalebu/Plagiarism-checker-Python
의존항
네가 놀기 전에...
Reference
이 문제에 관하여(Python을 사용하여 텍스트의 표절을 검사하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kalebu/how-to-detect-plagiarism-in-text-using-python-dpk
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Python을 사용하여 텍스트의 표절을 검사하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kalebu/how-to-detect-plagiarism-in-text-using-python-dpk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)