Pubmed의 정보를 사용하여 NLTK 자료를 작성하려고합니다.목록에서 NLTK 코퍼스 분류
첫 번째 시도에서 Entrez 패키지를 사용하여 데이터를 검색하는 작은 함수를 성공적으로 만들었고 가져온 문서 제목 (문자열 목록, 제목)을 파일 집합 (각 제목을 새로운 파일)을 사용하고 문서의 범주로 각 'fileid'(즉 파일 이름)를 사용하여 코퍼스를 만들었습니다.
이제 게임을 강화해야합니다. 코퍼스의 각 문서에는 제목, 초록 및 각각의 MeSH 용어가 있어야합니다 (이 마지막으로 코퍼스의 범주를 정의해야합니다. 문서의 이름).
그래서 이제 해결 방법을 모르는 몇 가지 문제가 있습니다. 다음과 같이
1) 내 코퍼스 독자가 간다 : 그것을 이해하기 쉬울 수 있으므로 나는 뒤로 시작됩니다
'cat_pattern'는 fileids 인수에서 범주 이름을 추출하는 정규 표현식입니다corpus = CategorizedPlaintextCorpusReader(corpus_root, file_pattern,
cat_pattern=r'(\w+)_.*\.txt')
, 즉 파일의 이름. 하지만 이제는 파일 내의 MeSH 용어에서 이러한 범주를 가져와 다음 문제를 야기 할 수 있습니다.
2) Pubmed 쿼리는 처음에 제목 만 가져온 곳에서 정보 배치를 검색합니다. 나는 코퍼스를 생성하는 데 사용할 것입니다.)하지만 이제 제목, 초록 및 MeSH 용어를 검색해야합니다.
papers = []
'논문은'모든 검색 기사뿐만 아니라 모든과 제품에 관한 정보를 포함하는 목록을 다음과 같이
의사 코드 뭔가 될 것입니다. 이 전 다음 있다고 가정 해 봅시다 : 목록의 마지막 부분에서, [ 'MH'] (메쉬 용어 목록), I는 코퍼스의 범주를 정의하는 데 사용할 필요가 무엇
out = []
for each in range(0, len(papers)):
out.append(papers[each]['TI'])
out.append(papers[each]['AB'])
out.append(papers[each]['MH'])
있다.
3) 나는 정보의이 3 개 조각 코퍼스를 구축 한 후, 내 분류를 사용할 수 있도록, 또한 어떻게 든이에 정보의 모든 배치를 변환해야합니다 "
# X: a list or iterable of raw strings, each representing a document.
X = [corpus.raw(fileid) for fileid in corpus.fileids()]
것을 기억 fileid "는 코퍼스의 각 문서입니다. 이것은 각 문서가 단일 문자열 (제목)로 구성되어 있고 각 "문서"는 제목 ([ 'TI']), 요약 ([ 'AB'])이 있어야하는 첫 번째 프로토 타입의 코드입니다.) 및 메쉬 용어 ([ 'MH'] - 잘 모르겠어요 이것 때문에 다음 코드는 : 여기
# y: a list or iterable of labels, which will be label encoded.
y = [corpus.categories(fileid)[0] for fileid in corpus.fileids()]
는 y는 파일 이름이었다 레이블을 나타냅니다, 그리고 지금 MeSH 용어로 레이블이 필요합니다.
어떻게 이런 일이 일어날 지 모르겠다. 아니면 내 지식이 가능한 한 가능하다. 예, NLTK 책 자습서를 읽고 읽었으며, NLTK corpora를 만드는 방법에 대한 많은 페이지 등을 읽었다. 등 ...하지만 아무 것도 할 의도가없는 것 같습니다.
이것은 매우 혼란 스러울 지 모르지만, 나에게 무엇인가를 바꿔야 할 필요가 있다면 알려주십시오.어떤 도움을 주시면 감사하겠습니다 :)
https://stackoverflow.com/questions/10463898/creating-a-custom-categorized-corpus-in-nltk-and-python – alvas
에서 이미 살펴 봤지만 불행히도 도움이되지 않습니다. ,하지만 고마워요. – tanmald