전혀 관심이 없지만...
좀 해봐달라는 분이 계셔서 테스트를 진행해봄 소스를 수정하거나 하질 않았지만
테스트 정도는 해볼수 있으니…
http://cermine.ceon.pl 에서도 바로 실행해볼 수 있다
소스를 살펴보면 업로드한 PDF를 저장하지도 않고, Thread에서 가지고 있다가
프로젝트를 종료하면 사라진다...
PDF 저작권문제가 있어서 그렇다고 하는데 잘모르겠다
논문 메타 추출 프로그램으로 CERMINE논문만봐도 어느 프로그램보다 추출범위도 높은데…
GNU라이센스라서 수정하면 소스공개를 해야하니…. 활용은 적은듯
유사 프로그램으로 아파치라이센스인 GROBID도 있고...
특히 굵게 표시한 것은 GPL의 주요 특징인 '전염성'에 관한 부분이다.
|
뭐 힘들개 수정했는데 공개해야한다니 국내에서는 쓰는사람이 없을듯(해도 공개안할듯)
논문: https://doi.org/10.1007/s10032-015-0249-8
Github: https://github.com/CeON/CERMINE
Version: 1.14-SNAPSHOT
Text PDF 로 작성된 논문을 읽고 메타를 추출해주는 프로그램
https://github.com/CeON/CERMINE/blob/master/README.md 에 자세한 내용이 기술 되있음
GITHUB에서 소스를 다운받으면 3개의 하위 프로젝트를 포함하고있다
심플하게
cermine-web을 구동하고 웹화면에서 바로 ContentExtractor를 이용하면
JATS NLM(이게 맞는 용어인가는 안찾아봄)으로 추출이된다
그러니 jats.xsl만 있으면 html로 컨버팅하여 웹에서 바로 보여줄 수 있다
근데 어딜가나 한글이 문제
데이터 추출한걸보니 참고문헌이 한글로 작성되있으면
참고문헌이 추출안된다, 내용도 안맞는 부분이 있을지도(확인안함)
뭐 그런거 개선하라고 기계학습을 언급하고 사용법을 넣어놨겠지만
기계학습
https://github.com/CeON/CERMINE/blob/master/TRAINING.md 에 기계학습에 대한 내용이 기술되있다
PDF를 읽어 모델을 만드는듯
명령어 : $ java -cp cermine.jar pl.edu.icm.cermine.ContentExtractor -path path/to/directory/with/pdfs -outputs trueviz
추출할 PDF파일 위치를 -path로 넘기면 되는듯
참고문헌 원형을 기계가 학습할 수 있도록 XML로 학습 데이터셋을 만들고 기계학습데이터로 변경하는듯
* 학습 데이터셋
학습할 참고문헌을 아래XML과 같이 구성하고 이를 CERMINE에서 기계학습데이터로 변경
근데 구성할것도 없이 영문이면 잘 뽑히는듯함... 한글로 구성해서 테스트를 해봐야하는데
귀찮..
<refs> <mixed-citation>...</mixed-citation> <mixed-citation>...</mixed-citation> ... </refs> |
mixed-citation 구성은 아래와 같이 참고문헌 원형을 XML로 구분해 줌
9. Karageorgiou V, Kaplan D. Porosity of 3D biomaterial scaffolds and osteogenesis. Biomaterials. 2005; 26(27):5474-91. |
<mixed-citation>9. <string-name><surname>Karageorgiou</surname> <given-names>V</given-names></string-name>, <string-name><surname>Kaplan</surname> <given-names>D.</given-names></string-name> <article-title>Porosity of 3D biomaterial scaffolds and osteogenesis</article-title>. <source>Biomaterials</source>. <year>2005</year>; <volume>26</volume> (<issue>27</issue>): <fpage>5474</fpage>- <lpage>91</lpage>. </mixed-citation> |
만들어진 XML파일을 CERMINE에서 변경하기 위한 명령어
$ java -cp cermine.jar pl.edu.icm.cermine.bibref.MalletTrainingFileGenerator input/path/to/dataset output/path/to/GRMM/input output/path/to/terms.txt output/path/to/journals.txt output/path/to/surnames.txt output/path/to/institutions.txt |
버전 차이가 있는듯 함. 1.14-SNAPSHOT 에는 인자가 5개인데 이전에는 3개…
Jar파일을 1.13버전으로 받았는데 인자로 넘기는 부분이 하드코딩되있..는걸 후에 알아서 분노함…
디컴파일러의 중요성...
학습데이터를 만들면 기계학습을 해야하는듯 한데 보면 GRMM을 사용하는 예제가 나와있다
근데 기계학습을 전혀 해본적이 없어서 결과물을가지고 뭘해야하는지도 모른다는게 흠이긴 하지만..
참고로 다운받아서 build를 시키면 charset 경로를 뿜어 줌…
해당 파일의 인코딩을 알수없어(UTF-8이 아님...) 원래 문자로 파악되는 부분을 웹에서 찾아 수정함
맞는지는 모르겠지만 일단 사각특수문자나 ?로 표기되지는 않으니 그냥 쓰기로 함
- TUI.java private static String CAPS = "[A-Z좼顧愍훠籠한堀]"; private static String LOW = "[a-z殲任啣勖采塢錠]"; private static String CAPSNUM = "[A-Z좼顧愍훠籠한堀0-9]"; private static String ALPHA = "[A-Z좼顧愍훠籠한堀a-z殲任啣勖采塢錠]"; private static String ALPHANUM = "[A-Z좼顧愍훠籠한堀a-z殲任啣勖采塢錠0-9]"; |
근데 학습데이터(영문)을 만들고 돌려봤는데 JAVA HEAP 에러가 나면서 죽는다
컴터 사양이 못받쳐주나보다
참고
댓글 영역