2017-05-08 1 views
-1

mongo db 컬렉션의 데이터를로드하여 데이터 프레임을 불러올 수 있습니다. 나는이를 위해 mongo spark connector를 사용했다.Dataframe의 텍스트 열에서 단어를 추출하여 문서에 대한 사전을 만듭니다.

이제 단어를 문서에 매핑하는 단어 사전을 만들기 위해 데이터 프레임의 텍스트 필드에서 단어를 추출하고 싶습니다.

기본적으로 추출 된 단어는 키이어야하며 값은 문서의 docId입니다.

데이터 프레임의 텍스트 열에서 단어를 구문 분석하고 추출하여 해당 문서에 맞게 매핑 할 수 있는지 잘 모르겠습니다.

매핑 후에도 단어를 포함하는 문서 목록으로 키와 값으로 단어를 갖도록 매핑을 축소하려고합니다.

일부는 데이터 프레임의 텍스트 열에서 단어를 추출하는 방법/코드를 도울 수 있습니까?

답변

0

은 기본적으로 당신이 말하고있는 것은 : 1000 개 문서와 총이있는 경우 때문에 많은 문서가이 단어를

이 접근 방식을 포함하는 방법에 대한 매핑

1) 문서 수집 2) 단어 컬렉션은 효율적이지 않다 단어는 10,000 이상일 수 있습니다. 다음은 제한 사항입니다.

1) 많은 데이터 인 문서 매핑이있는 모든 단어에 대한 레코드가 있어야합니다. 2) 문서가 업데이트되면 제거 된 모든 단어 매핑을 업데이트해야합니다. 새로 추가 된 단어에 매핑하기 3) 30-40 단어 만 자주 검색되는 경우, 필요하지 않은 모든 단어를 저장하고 있습니다.

대신 문서를 간단하게 유지하십시오. 전체 텍스트 검색을 수행해야하는 문서 내용 필드에 $ 텍스트 색인을 추가하십시오.

응용 프로그램에서 텍스트 검색 만 특별히 처리하는 경우 mongodb 대신 elasticsearch를 사용하십시오. 언젠가 내가 쓴이 대답을 확인하십시오 : MongoDB: Text search (exact match) using variable

Elasticsearch는 텍스트 검색에 매우 효율적으로 lucene 엔진을 기반으로합니다.

+0

답변 해 주셔서 감사합니다. 내 요구 사항은 채워진 컬렉션을 사용하여 사용자가 입력 할 때마다 Google 추천과 유사한 사용자에게 자동 제안을 제공하는 것입니다. Mongo DB Text $ text를 사용하면 문서의 특정 텍스트를 검색 할 수 있지만 사용자에게 단어 목록을 제공 할 수는 없습니다. 조직에서 취한 일부 기업 결정 때문에 ElasticSearch를 사용할 수 없으며이 요구 사항을 충족시키기 위해 Mongo DB 기능을 활용해야합니다. – Jbaur

+0

그래서 내가 입력 할 경우, 그것은 나를 재생할 것을 제안 할 것인가? 또는 재생, 재생, 재생중인 문서의 제목을 채우고 싶습니까? 또는 mongodb가 제목뿐만 아니라 작업 내용을 찾기 위해 문서의 내용을 조사하기를 원하십니까? –

+0

사용자가 'A'를 입력하면 소스 모음에서 단어를 추출하여 채워진 색인화 된 모음집에서 A로 시작하는 단어를 가져옵니다. 인덱싱 된 컬렉션에는 추출 된 단어의 값으로 "_id"필드가있는 문서가 있습니다. 다른 필드는이 필드가있는. 서의. 서 ID입니다. 이것은 regex와 같은 질의로 할 수 있습니다. 반환 된 단어는 사용자에게 전송됩니다. 사용자가 단어를 선택하면 색인 된 컬렉션에서 단어를 검색하고 거기에서 문서 위치를 가져온 다음 소스 모음을 쿼리하여 실제 문서를 가져옵니다. – Jbaur

관련 문제