Markov chain은 특정 확률로 다른 상태로 전환 할 수있는 상태 집합으로 구성됩니다.Neo4J로 마코프 체인 시뮬레이션
마코프 체인은 각 상태에 대한 노드, 각 전환에 대한 관계를 생성 한 다음 적절한 확률로 전환 관계에 주석을 달아 Neo4J에서 쉽게 나타낼 수 있습니다.
하지만 을 시뮬레이션 할 수 있습니다 Neo4J를 사용하여 마르코프 체인을 시뮬레이션 할 수 있습니까? 예를 들어, Neo4J가 특정 상태에서 시작하도록 강요 당하고 확률에 따라 다음 상태와 다음 상태로 전환 할 수 있습니까? Neo4J는이 상태 공간을 통과 한 경로를 출력 할 수 있습니까?
아마도 간단한 예를 들어 이해하기가 쉽습니다. my company's tech blog이라는 텍스트를 기반으로 2 그램의 영어 모델을 만들고 싶다고합시다. 다음을 수행하는 스크립트를 작성합니다.
- 블로그의 텍스트를 아래로 내립니다.
- 인접한 모든 문자 쌍을 반복하고 Neo4J에 노드를 만듭니다.
- 인접한 문자의 3-tuple마다 다시 반복 한 다음 처음 두 글자가 나타내는 노드와 마지막 두 글자가 나타내는 노드 사이에 Neo4J 방향 관계를 만듭니다. 이 관계에있는 카운터를 1로 초기화합니다. 관계가 이미 존재하면 카운터가 증가합니다.
- 마지막으로, 각 노드를 반복하고, 얼마나 많은 총 송신 전환이 발생했는지 계산 한 다음 특정 노드의 각 관계에 대해
count/totalcount
과 같은 새로운 주석을 만듭니다. 이것이 전환 확률입니다.
이제 Neo4J 그래프가 완성되었으므로 2g 모델의 영어로 "문장"을 만들려면 어떻게해야합니까? 결과는 다음과 같습니다.
REPTAGIN의 돌연변이가 자라는 돌연변이가 CRE의 돌연변이입니다.
추가 신용 :
는당신이 요구하고 코드는 다음과 같이 보입니다. 유명한 종이. – JnBrymn
5 그램의 영어 모델로 확장하면 트위터 게시물과 구별 할 수없는 문장을 얻을 수 있다고합니다. – JnBrymn