nlp-compromise

what language!

자연어 처리는 검색과 인공지능 혹은 siri나 alexa 같은 응답형 비서 서비스에는 필수적입니다. javascript기반으로 만들어진 자연어 처리 모듈이 오늘의 깃헙 순위에 올라와 소개합니다.

2016/05/15 Today’s Best

nlp-compromise/nlp_compromise
_nlp_compromise - a cool way to use natural language in javascript_github.com


설치하기

$npm install nlp\_compromise

실행하기

일단 복수형 테스트 해 볼까요?

$ node  
\> let nlp = require("nlp\_compromise");  
NLP {  
plugin: \[Function\],  
lexicon: \[Function\],  
term: \[Function\],  
noun: \[Function\],  
verb: \[Function\],  
adjective: \[Function\],  
adverb: \[Function\],  
value: \[Function\],  
person: \[Function\],  
place: \[Function\],  
date: \[Function\],  
organization: \[Function\],  
text: \[Function\],  
sentence: \[Function\],  
statement: \[Function\],  
question: \[Function\] }  
\> nlp.noun("mouse").pluralize();  
'mice'  
\> nlp.noun("aircraft").pluralize();  
'aircraft'  
\> nlp.noun("millnnium").pluralize();  
'millnnia'  
\> nlp.noun("소녀시대").pluralize();  
's'  
\> nlp.noun("super man").pluralize();  
'super men'  
\>

한글은 안되는군요. (뭐 예상했지만)

mice, aircraft, millenium 같은 복수형이 독특한 단어를 넣어 봤는데, 잘 통과를 합니다.

재미있는 것은 millnnium 으로 단어는 오타가 났는데도 millnnia 로 변형되어 오더라는 것입니다.

plurize 소스를 살펴보면

이렇게 많은 케이스의 단어에 대해 정규식으로 변형 형태를 지정해 놓았네요. 이런 식이라면 한글화는 요원해 보이는군요.

‘소녀시대’는 s로만 변형된다든지 말이죠.

compromise라는 접미가 붙은 이유를 알겠네요.

뭐 어쨌든 영어권에서는 잘 사용될 수 있는 모듈인거 같습니다.

By Keen Dev on May 14, 2016.

Exported from Medium on May 31, 2017.

why-did-you-update

blog.atom.io

reflow는 같은 리소스를 또 호출하는 것을 이야기하고, repaint는 다시 redering하는 것을 이야기 합니다. 아무리 페이지를 가볍게 만들어도 reflow와 repaint를 자주 반복한다면 페이지 성능에 문제가 있겠죠?

이런 관점에서 React 의 값들에 대해서 update가 일어나는 것을 파악해서 알려주는 프로젝트가 있습니다. update 가 일어났는데도 값은 바뀌지 않으면 왜 바뀌지 않았나요? reflow,repaint 아닌가요? 라고 묻습니다.

2016/05/14 Editor’s choice

garbles/why-did-you-update
_why-did-you-update - :boom: Puts your console on blast when React is making unnecessary updates._github.com


설치하기

$npm install why-did-you-update --save

네, 언제나 그렇듯이.

실행해 봅시다.

그냥 React는 당연히 잘 실행을 할 듯 싶어서 작업중이던 React-Native 프로젝트에 한번 넣어 보았습니다.

그러고 나서 실행을 시켜 보았습니다.

Facebook 로그인 모듈에서 미친듯한 data의 update 가 일어나는군요.

( 아무래도 이 부분은 모듈의 문제라기 보다는 react-native 에서 state가 변하는 방식이 react와는 다르게 일어나는 듯 싶네요)

어쨌든 데이타 변화를 감지해서 같은 값의 경우 값을 로깅을 해 주네요.

By Keen Dev on May 14, 2016.

Exported from Medium on May 31, 2017.