Spikex는 스파이 파이프 라인에 꽂을 준비가 된 파이프 모음입니다. 거의 0의 노력으로 지식 추출 도구를 구축하는 데 도움이됩니다.
Wikigraph는 그렇게 빠르게 번개를 한 적이 없습니다.
Doc 의 밑줄 확장을 만듭니다. 예제는 명사 문구와 동사 문구를 각각 추출하는 Nounphrasex 및 Verbphrasex 입니다.일부 요구 사항은 Spacy에서 상속됩니다.
일부 의존성은 Cython을 사용하며 Spikex 전에 설치해야합니다.
pip install cython시스템 상태 수정을 피하기 위해 가상 환경은 항상 권장됩니다.
이 시점에서 PIP를 통해 Spikex를 설치하는 것은 원한 명령입니다.
pip install spikexSpikex 파이프는 Spacy와 함께 작동하므로 설치해야 할 모델입니다. 여기에서 공식 지침을 따르십시오. 새로운 Spacy 3.0이 지원됩니다!
WikiGraph 는 Wikipedia의 일부 주요 구성 요소에서 시작하여 페이지 , 카테고리 및 관계 에서 구축되었습니다.
WikiGraph 만드는 데는 Wikipedia 덤프가 얼마나 큰지에 따라 시간이 걸릴 수 있습니다. 이러한 이유로, 우리는 사용할 준비가 된 wikigraph를 제공합니다.
| 날짜 | Wikigraph | 랭 | 크기 (압축) | 크기 (메모리) | |
|---|---|---|---|---|---|
| 2021-05-20 | enwiki_core | en | 1.3GB | 8GB | |
| 2021-05-20 | Simplewiki_core | en | 20MB | 130MB | |
| 2021-05-20 | itwiki_core | 그것 | 208MB | 1.2GB | |
| 더오고 ... |
Spikex는 WikiGraph (Linux 또는 MacOS, Windows는 아직 지원되지 않는 Windows)를 다운로드하고 설치하는 바로 가기 명령을 제공합니다.
spikex download-wikigraph simplewiki_core WikiGraph 명령 줄에서 만들 수 있으며, 가져갈 Wikipedia 덤프 및 저장 위치를 지정할 수 있습니다.
spikex create-wikigraph
< YOUR-OUTPUT-PATH >
--wiki < WIKI-NAME, default: en >
--version < DUMP-VERSION, default: latest >
--dumps-path < DUMPS-BACKUP-PATH > 그런 다음 포장 및 설치해야합니다.
spikex package-wikigraph
< WIKIGRAPH-RAW-PATH >
< YOUR-OUTPUT-PATH >포장 프로세스 끝의 지침을 따르고 가상 환경에 배포 패키지를 설치하십시오. 이제 원하는대로 Wikigraph를 사용할 준비가되었습니다.
from spikex . wikigraph import load as wg_load
wg = wg_load ( "enwiki_core" )
page = "Natural_language_processing"
categories = wg . get_categories ( page , distance = 1 )
for category in categories :
print ( category )
> >> Category : Speech_recognition
> >> Category : Artificial_intelligence
> >> Category : Natural_language_processing
> >> Category : Computational_linguistics매치자는 스파이어와 동일하지만 한 번에 많은 패턴을 처리 할 때 더 빠르므로 공식 사용 지침을 따르십시오.
사소한 예 :
from spikex . matcher import Matcher
from spacy import load as spacy_load
nlp = spacy_load ( "en_core_web_sm" )
matcher = Matcher ( nlp . vocab )
matcher . add ( "TEST" , [[{ "LOWER" : "nlp" }]])
doc = nlp ( "I love NLP" )
for _ , s , e in matcher ( doc ):
print ( doc [ s : e ])
> >> NLP WikiPageX 파이프는 Wikipedia 페이지 제목과 일치하는 텍스트에서 청크를 찾기 위해 WikiGraph 사용합니다.
from spacy import load as spacy_load
from spikex . wikigraph import load as wg_load
from spikex . pipes import WikiPageX
nlp = spacy_load ( "en_core_web_sm" )
doc = nlp ( "An apple a day keeps the doctor away" )
wg = wg_load ( "simplewiki_core" )
wpx = WikiPageX ( wg )
doc = wpx ( doc )
for span in doc . _ . wiki_spans :
print ( span . _ . wiki_pages )
> >> [ 'An' ]
> >> [ 'Apple' , 'Apple_(disambiguation)' , 'Apple_(company)' , 'Apple_(tree)' ]
> >> [ 'A' , 'A_(musical_note)' , 'A_(New_York_City_Subway_service)' , 'A_(disambiguation)' , 'A_(Cyrillic)' )]
> >> [ 'Day' ]
> >> [ 'The_Doctor' , 'The_Doctor_(Doctor_Who)' , 'The_Doctor_(Star_Trek)' , 'The_Doctor_(disambiguation)' ]
> >> [ 'The' ]
> >> [ 'Doctor_(Doctor_Who)' , 'Doctor_(Star_Trek)' , 'Doctor' , 'Doctor_(title)' , 'Doctor_(disambiguation)' ] ClusterX 파이프는 텍스트에서 명사 청크를 가져 와서 방사형 볼 맵퍼 알고리즘을 사용하여 클러스터합니다.
from spacy import load as spacy_load
from spikex . pipes import ClusterX
nlp = spacy_load ( "en_core_web_sm" )
doc = nlp ( "Grab this juicy orange and watch a dog chasing a cat." )
clusterx = ClusterX ( min_score = 0.65 )
doc = clusterx ( doc )
for cluster in doc . _ . cluster_chunks :
print ( cluster )
> >> [ this juicy orange ]
> >> [ a cat , a dog ]ABBRX 파이프는 텍스트에서 약어와 약어를 찾아 짧고 긴 형태를 연결합니다.
from spacy import load as spacy_load
from spikex . pipes import AbbrX
nlp = spacy_load ( "en_core_web_sm" )
doc = nlp ( "a little snippet with an abbreviation (abbr)" )
abbrx = AbbrX ( nlp . vocab )
doc = abbrx ( doc )
for abbr in doc . _ . abbrs :
print ( abbr , "->" , abbr . _ . long_form )
> >> abbr - > abbreviation LabelX 파이프는 텍스트의 패턴과 레이블 패턴을 일치시키고 오버랩, 약어 및 약어를 해결합니다.
from spacy import load as spacy_load
from spikex . pipes import LabelX
nlp = spacy_load ( "en_core_web_sm" )
doc = nlp ( "looking for a computer system engineer" )
patterns = [
[{ "LOWER" : "computer" }, { "LOWER" : "system" }],
[{ "LOWER" : "system" }, { "LOWER" : "engineer" }],
]
labelx = LabelX ( nlp . vocab , [( "TEST" , patterns )], validate = True , only_longest = True )
doc = labelx ( doc )
for labeling in doc . _ . labelings :
print ( labeling , f"[ { labeling . label_ } ]" )
> >> computer system engineer [ TEST ] PhraseX 파이프는 문구 패턴과 일치하는 커스텀 Doc 의 밑줄 확장을 만듭니다.
from spacy import load as spacy_load
from spikex . pipes import PhraseX
nlp = spacy_load ( "en_core_web_sm" )
doc = nlp ( "I have Melrose and McIntosh apples, or Williams pears" )
patterns = [
[{ "LOWER" : "mcintosh" }],
[{ "LOWER" : "melrose" }],
]
phrasex = PhraseX ( nlp . vocab , "apples" , patterns )
doc = phrasex ( doc )
for apple in doc . _ . apples :
print ( apple )
> >> Melrose
> >> McIntoshSentx 파이프는 문장을 텍스트로 나눕니다. Tokens ' IS_SENT_START 속성을 수정하므로 Spacy 파이프 라인에서 구문 분석 파이프 전에 추가해야합니다.
from spacy import load as spacy_load
from spikex . pipes import SentX
from spikex . defaults import spacy_version
if spacy_version >= 3 :
from spacy . language import Language
@ Language . factory ( "sentx" )
def create_sentx ( nlp , name ):
return SentX ()
nlp = spacy_load ( "en_core_web_sm" )
sentx_pipe = SentX () if spacy_version < 3 else "sentx"
nlp . add_pipe ( sentx_pipe , before = "parser" )
doc = nlp ( "A little sentence. Followed by another one." )
for sent in doc . sents :
print ( sent )
> >> A little sentence .
> >> Followed by another one .자유롭게 기여하고 재미있게 보내십시오!