gensim 테마 모델 을 이용 하여 비슷 한 coursera 과정 을 찾 습 니 다.
#encoding=utf-8
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem.lancaster import LancasterStemmer
courses=[line.strip() for line in file('coursera_corpus')]
courses_name=[course.split('\t')[0] for course in courses]
texts_tokenized=[[word.lower()for word in word_tokenize(document.decode('utf-8'))]
for document in courses]
# nltk
english_stopwords=stopwords.words('english')
texts_filtered_stopwords=[[word for word in document if word not in english_stopwords]
for document in texts_tokenized]
#
english_punctuations=[',','.',':','?','(',')','[',']','&','!','*','@','#','$','%']
texts_filted=[[word for word in document if word not in english_punctuations]
for document in texts_filtered_stopwords]
#
st=LancasterStemmer()
texts_stemmed=[[st.stem(word) for word in document]
for document in texts_filted]
#
from collections import defaultdict
frequency=defaultdict(int)
for text in texts_stemmed:
for token in text:
frequency[token]+=1
texts=[[token for token in text if frequency[token]>1]
for text in texts_stemmed]
from gensim import corpora, models, similarities
import logging
#logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
dictionary=corpora.Dictionary(texts)
corpus=[dictionary.doc2bow(text) for text in texts]
tfidf=models.TfidfModel(corpus)
corpus_tfidf=tfidf[corpus]
lsi=models.LsiModel(corpus_tfidf,id2word=dictionary,num_topics=10)
index=similarities.MatrixSimilarity(lsi[corpus])
print "the query course is:",courses_name[174]
ml_course=texts[174]
ml_bow=dictionary.doc2bow(ml_course)
ml_lsi=lsi[ml_bow]
sims=index[ml_lsi]
sort_sims=sorted(enumerate(sims),key=lambda item:-item[1])
courses_nameTop=[tup[0]for tup in sort_sims[0:10]]
courses_sim=[courses_name[num] for num in courses_nameTop]
print "the similarity courses are:"
for doc in courses_sim:
print doc
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.