forked from qverbeke/CourseLoad
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueryingDB.py
More file actions
127 lines (107 loc) · 4.96 KB
/
queryingDB.py
File metadata and controls
127 lines (107 loc) · 4.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#ibm cloud
from cloudant.client import Cloudant
from cloudant.error import CloudantException
from cloudant.result import Result, ResultByKey
from watson_developer_cloud import NaturalLanguageUnderstandingV1
import watson_developer_cloud.natural_language_understanding.features.v1 as Features
import json
import os
import time
user_name = "725dd567-163e-4a27-9e6e-0fe7ba0c2896-bluemix"
password = "e71102d0e5605a5f8367d6bf4caad4758554207acaac646da972b5679e45e951"
url = "https://725dd567-163e-4a27-9e6e-0fe7ba0c2896-bluemix:e71102d0e5605a5f8367d6bf4caad4758554207acaac646da972b5679e45e951@725dd567-163e-4a27-9e6e-0fe7ba0c2896-bluemix.cloudant.com"
token = ""
user_name_watson = "63da93ac-d845-45bc-b490-d54eac92c5b5"
password_watson = "kWyVorvR4oxm"
url_watson = "https://gateway.watsonplatform.net/natural-language-understanding/api"
def parseJson(dct):
conceptz = dct["concepts"]
result = []
for i,concept in enumerate(conceptz):
result[i] = {}
result[i]['text'] = concept['text']
result[i]['relevance'] = concept['relevance']
return result
def db_watson_query():
client = Cloudant(user_name, password, url = url)
client.connect()
databaseName = "catalog"
myDatabase = client[databaseName]
if(myDatabase.exists()):
print("Successfully created a database {}".format(databaseName))
result_collection = Result(myDatabase.all_docs, include_docs=True)
print ("Retrieved full document:\n{0}\n".format(result_collection[0]))
end_point = '{0}/{1}'.format(url, databaseName + "/_all_docs")
params = {'include_docs': 'true'}
response = client.r_session.get(end_point, params=params)
#connect to Watson NLU
natural_language_understanding = NaturalLanguageUnderstandingV1(
username=user_name_watson,
password=password_watson,
version="2017-02-27")
#feed data to watson api
for i in range(0, 300):
tmp = result_collection[i][0]['doc']
response = natural_language_understanding.analyze(
text = tmp['description'],
features=[
Features.Concepts(
# Concepts options
limit=5
)
]
)
jss = json.dumps(response, indent=2)
parses = parseJson(response)
mydocument = myDatabase[tmp['_id']]
mydocument['keywords'] = parses
mydocument.save()
client.disconnect()
def getCoursesByAttribute(attribute):
client = Cloudant(user_name, password, url = url)
client.connect()
databaseName = "catalog"
myDatabase = client[databaseName]
if(myDatabase.exists()):
print("Successfully created a database {}".format(databaseName))
result_collection = list(Result(myDatabase.all_docs, include_docs=True))
#print ("Retrieved full document:\n{0}\n".format(result_collection[0]))
end_point = '{0}/{1}'.format(url, databaseName + "/_all_docs")
params = {'include_docs': 'true'}
response = client.r_session.get(end_point, params=params)
resultz = []
count = 0
for i in range(0, len(result_collection)):
tmp = result_collection[i]['doc']
if('keywords' in tmp):
dct=tmp['keywords']
for entry in dct:
if(attribute.lower() in entry["text"].lower()):
resultz.append(tmp)
count+=1
client.disconnect()
return resultz
##
##user_name = "725dd567-163e-4a27-9e6e-0fe7ba0c2896-bluemix"
##password = "e71102d0e5605a5f8367d6bf4caad4758554207acaac646da972b5679e45e951"
##url = "https://725dd567-163e-4a27-9e6e-0fe7ba0c2896-bluemix:e71102d0e5605a5f8367d6bf4caad4758554207acaac646da972b5679e45e951@725dd567-163e-4a27-9e6e-0fe7ba0c2896-bluemix.cloudant.com"
##token = ""
##
##client = Cloudant(user_name, password, url = url)
##client.connect()
##
##databaseName = "catalog"
##myDatabase = client[databaseName]
##if(myDatabase.exists()):
## print("Successfully created a database {}".format(databaseName))
####result_collection = Result(myDatabase.all_docs)
##
##result_collection = Result(myDatabase.all_docs, include_docs=True)
##print ("Retrieved full document:\n{0}\n".format(result_collection[0]))
##
##end_point = '{0}/{1}'.format(url, databaseName + "/_all_docs")
##params = {'include_docs': 'true'}
##response = client.r_session.get(end_point, params=params)
###print ("{0}\n".format(response.json()))
##
###client.disconnect()