Przeglądaj źródła

project package update

tobby48 6 lat temu
rodzic
commit
4f99c45079

src/main/java/kr/co/swh/lecture/opensource/discord/project/DicAnalysis.java → src/main/java/kr/co/swh/lecture/opensource/project/discode/MakeSentimentalDictionary.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.discord.project;
1
+package kr.co.swh.lecture.opensource.project.discode;
2 2
 
3 3
 import java.io.IOException;
4 4
 import java.sql.Connection;
@@ -14,7 +14,7 @@ import org.apache.http.util.EntityUtils;
14 14
 
15 15
 import com.google.gson.Gson;
16 16
 
17
-public class DicAnalysis {
17
+public class MakeSentimentalDictionary {
18 18
 
19 19
 	public static void main(String[] args) {
20 20
 		// TODO Auto-generated method stub
@@ -38,8 +38,8 @@ public class DicAnalysis {
38 38
 		try {
39 39
 			response = client.execute(requestGet);
40 40
 			responseString = EntityUtils.toString(response.getEntity());
41
-			SentimentalDic[] value = gson.fromJson(responseString, SentimentalDic[].class);
42
-			for(SentimentalDic dic : value) {
41
+			SentimentalDictionary[] value = gson.fromJson(responseString, SentimentalDictionary[].class);
42
+			for(SentimentalDictionary dic : value) {
43 43
 				String insertTableSQL = "INSERT INTO SENTIMENTAL_DIC"
44 44
 						+ "(word_root, polarity) VALUES"
45 45
 						+ "(?,?)";

src/main/java/kr/co/swh/lecture/opensource/discord/project/SendJDA.java → src/main/java/kr/co/swh/lecture/opensource/project/discode/SendJDA.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.discord.project;
1
+package kr.co.swh.lecture.opensource.project.discode;
2 2
 
3 3
 import java.io.IOException;
4 4
 import java.sql.Connection;
@@ -30,7 +30,7 @@ public class SendJDA {
30 30
 	public static JDA jda;
31 31
 	public static void main(String[] args) {
32 32
 		// TODO Auto-generated method stub
33
-		List<SentimentalDic> dicList = initDatabase();
33
+		List<SentimentalDictionary> dicList = initDatabase();
34 34
 		JDABuilder jb = new JDABuilder(AccountType.BOT);
35 35
 		jb.setAutoReconnect(true);
36 36
 		jb.setStatus(OnlineStatus.DO_NOT_DISTURB);
@@ -45,9 +45,9 @@ public class SendJDA {
45 45
 		}
46 46
 	}
47 47
 
48
-	public static List<SentimentalDic> initDatas() {
48
+	public static List<SentimentalDictionary> initDatas() {
49 49
 		Gson gson = new Gson();
50
-		List<SentimentalDic> dicList = new ArrayList<SentimentalDic>();
50
+		List<SentimentalDictionary> dicList = new ArrayList<SentimentalDictionary>();
51 51
 		CloseableHttpClient client = HttpClients.createDefault();
52 52
 		HttpResponse response = null;
53 53
 		String responseString = "";
@@ -55,7 +55,7 @@ public class SendJDA {
55 55
 		try {
56 56
 			response = client.execute(requestGet);
57 57
 			responseString = EntityUtils.toString(response.getEntity());
58
-			SentimentalDic[] value = gson.fromJson(responseString, SentimentalDic[].class);
58
+			SentimentalDictionary[] value = gson.fromJson(responseString, SentimentalDictionary[].class);
59 59
 			dicList.addAll(Arrays.asList(value));
60 60
 		} catch (IOException e2) {
61 61
 			// TODO Auto-generated catch block
@@ -64,8 +64,8 @@ public class SendJDA {
64 64
 		return dicList;
65 65
 	}
66 66
 	
67
-	public static List<SentimentalDic> initDatabase(){
68
-		List<SentimentalDic> dicList = new ArrayList<SentimentalDic>();
67
+	public static List<SentimentalDictionary> initDatabase(){
68
+		List<SentimentalDictionary> dicList = new ArrayList<SentimentalDictionary>();
69 69
 		Connection connection = null;
70 70
 		try {
71 71
 			Class.forName("com.mysql.jdbc.Driver");
@@ -82,7 +82,7 @@ public class SendJDA {
82 82
 			statement = connection.createStatement();
83 83
 			ResultSet rs = statement.executeQuery("SELECT * FROM SENTIMENTAL_DIC;");
84 84
 			while(rs.next()){
85
-				SentimentalDic dic = new SentimentalDic();
85
+				SentimentalDictionary dic = new SentimentalDictionary();
86 86
 				dic.setWord_root(rs.getString("word_root"));
87 87
 				dic.setPolarity(String.valueOf(rs.getInt("polarity")));
88 88
 				dicList.add(dic);

src/main/java/kr/co/swh/lecture/opensource/discord/project/SentimentalDic.java → src/main/java/kr/co/swh/lecture/opensource/project/discode/SentimentalDictionary.java Wyświetl plik

@@ -1,6 +1,6 @@
1
-package kr.co.swh.lecture.opensource.discord.project;
1
+package kr.co.swh.lecture.opensource.project.discode;
2 2
 
3
-public class SentimentalDic {
3
+public class SentimentalDictionary {
4 4
 	private String word;
5 5
 	private String word_root;
6 6
 	private String polarity;

src/main/java/kr/co/swh/lecture/opensource/discord/project/TListener.java → src/main/java/kr/co/swh/lecture/opensource/project/discode/TListener.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.discord.project;
1
+package kr.co.swh.lecture.opensource.project.discode;
2 2
 
3 3
 import java.util.List;
4 4
 
@@ -13,9 +13,9 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
13 13
 import net.dv8tion.jda.api.hooks.ListenerAdapter;
14 14
 
15 15
 public class TListener extends ListenerAdapter{
16
-	List<SentimentalDic> dicList;
16
+	List<SentimentalDictionary> dicList;
17 17
 	
18
-	public TListener(List<SentimentalDic> dicList) {
18
+	public TListener(List<SentimentalDictionary> dicList) {
19 19
 		this.dicList = dicList;
20 20
 	}
21 21
 	@Override
@@ -36,7 +36,7 @@ public class TListener extends ListenerAdapter{
36 36
 		for (LNode node : Analyzer.parseJava(msg.getContentRaw())) {
37 37
 			Morpheme m = node.morpheme();
38 38
 			if(!m.feature().head().equalsIgnoreCase("jks")) {
39
-				for(SentimentalDic dic : dicList) {
39
+				for(SentimentalDictionary dic : dicList) {
40 40
 					if(dic.getWord_root().equalsIgnoreCase(m.surface())){
41 41
 						count += Integer.parseInt(dic.getPolarity());
42 42
 					}

src/main/java/kr/co/swh/lecture/opensource/jsoup/news/A_CrawlClient.java → src/main/java/kr/co/swh/lecture/opensource/project/news/A_CrawlClient.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.jsoup.news;
1
+package kr.co.swh.lecture.opensource.project.news;
2 2
 
3 3
 import java.text.SimpleDateFormat;
4 4
 import java.util.ArrayList;

src/main/java/kr/co/swh/lecture/opensource/jsoup/news/ArticleCrawlerModel.java → src/main/java/kr/co/swh/lecture/opensource/project/news/ArticleCrawlerModel.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.jsoup.news;
1
+package kr.co.swh.lecture.opensource.project.news;
2 2
 
3 3
 public class ArticleCrawlerModel {
4 4
 	

src/main/java/kr/co/swh/lecture/opensource/jsoup/news/Calendar유용한 함수 → src/main/java/kr/co/swh/lecture/opensource/project/news/Calendar유용한 함수 Wyświetl plik


src/main/java/kr/co/swh/lecture/opensource/jsoup/news/ICrawlService.java → src/main/java/kr/co/swh/lecture/opensource/project/news/ICrawlService.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.jsoup.news;
1
+package kr.co.swh.lecture.opensource.project.news;
2 2
 
3 3
 public interface ICrawlService {
4 4
 	public void crawlling() throws Exception;

src/main/java/kr/co/swh/lecture/opensource/jsoup/news/NaverNewsCrawlSource.java → src/main/java/kr/co/swh/lecture/opensource/project/news/NaverNewsCrawlSource.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.jsoup.news;
1
+package kr.co.swh.lecture.opensource.project.news;
2 2
 
3 3
 import java.io.IOException;
4 4
 import java.util.HashMap;

src/main/java/kr/co/swh/lecture/opensource/sparkjava/news/Input.java → src/main/java/kr/co/swh/lecture/opensource/project/sparkjava/News.java Wyświetl plik

@@ -1,13 +1,13 @@
1
-package kr.co.swh.lecture.opensource.sparkjava.news;
1
+package kr.co.swh.lecture.opensource.project.sparkjava;
2 2
 
3
-public class Input {
3
+public class News {
4 4
 	private String category;
5 5
 	private String id;
6 6
 	private String date;
7 7
 	private String title;
8 8
 	private String script;
9 9
 	
10
-	public Input(String category, String id, String date, String title, String script) {
10
+	public News(String category, String id, String date, String title, String script) {
11 11
 		this.category = category;
12 12
 		this.id = id;
13 13
 		this.date = date;

src/main/java/kr/co/swh/lecture/opensource/sparkjava/news/Step1.java → src/main/java/kr/co/swh/lecture/opensource/project/sparkjava/Step1.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package kr.co.swh.lecture.opensource.sparkjava.news;
1
+package kr.co.swh.lecture.opensource.project.sparkjava;
2 2
 
3 3
 
4 4
 import static spark.Spark.get;
@@ -54,7 +54,7 @@ public class Step1 {
54 54
 			if(acc.equals("1")) res = stmt.executeQuery(acQuery);
55 55
 			else res = stmt.executeQuery(inacQuery);
56 56
 			while (res.next()) {
57
-				Input i = new Input(res.getString("category"), res.getString("id"), res.getString("date"), res.getString("title"), res.getString("script"));
57
+				News i = new News(res.getString("category"), res.getString("id"), res.getString("date"), res.getString("title"), res.getString("script"));
58 58
 				String academy2Json = new Gson().toJson(i);		
59 59
 				jArr.add(i);		// json문자열로 넣지 말고, 객체형태로 추가
60 60
 			}

+ 41
- 0
src/main/python/kr/co/swh/lecture/opensource/project/twitter_crawler_streaming.py Wyświetl plik

@@ -0,0 +1,41 @@
1
+# https://imasoftwareengineer.tistory.com/97?category=791547
2
+import tweepy
3
+from tweepy.streaming import StreamListener
4
+from tweepy import OAuthHandler
5
+from tweepy import Stream
6
+import json
7
+
8
+# twitter 계정이 있다면 앱을 만들어서 등록
9
+# 그렇지 않을 시에는 데이터베이스에 있는 정보 등록
10
+consumer_key = 'M3ioqfTgFkX2x04cYj8zoxoqB'
11
+consumer_secret = 'W52Zj3NL4CCwN1ROFsJY2M6qP6AZtNtWu2Ppkvf21x7PkFnEcz'
12
+access_token = '728767904-rvWxQuaQ7kIpOibulxvoHipDT8pWuEoukp4GaFYu'
13
+access_secret = 'DrIV41WcnXKCTW1rDUAzmcD4alzq3cHYW90pfrOvvhuvL'
14
+
15
+# 리스너 - 스트리밍 API로 부터 값이 들어오면 아래의 리스너가 실행된다.
16
+class Listener(StreamListener):
17
+    def on_data(self, data):
18
+        try:
19
+            all_data = json.loads(data)
20
+            tweet = all_data["text"]
21
+            print(tweet)
22
+        except:
23
+            print('Err')
24
+
25
+    def on_error(self, status):
26
+        print("ERROR: " + str(status))
27
+
28
+def main():
29
+    # 리스너 생성
30
+    l = Listener()
31
+    auth = OAuthHandler(consumer_key, consumer_secret)
32
+    auth.set_access_token(access_token, access_secret)
33
+    stream = Stream(auth, l) # 리스너와 인증키을 통해 스트리밍 객체 생성
34
+
35
+    # 언어=한국어(ko), 해시태그=필터할 단어
36
+    stream.filter(languages=["ko"], track=['코로나'])
37
+
38
+if __name__ == '__main__':
39
+    main()
40
+
41
+main()

+ 41
- 39
src/main/python/kr/co/swh/lecture/opensource/twitter/twitter_crawler_streaming.py Wyświetl plik

@@ -1,40 +1,42 @@
1
-# https://imasoftwareengineer.tistory.com/97?category=791547
2
-import tweepy
3
-from tweepy.streaming import StreamListener
4
-from tweepy import OAuthHandler
5
-from tweepy import Stream
6
-import json
7
-
8
-# twitter 계정이 있다면 앱을 만들어서 등록
9
-# 그렇지 않을 시에는 데이터베이스에 있는 정보 등록
10
-consumer_key = 'xx'
11
-consumer_secret = 'xx'
12
-access_token = 'xx'
13
-access_secret = 'xx'
14
-
15
-# 리스너 - 스트리밍 API로 부터 값이 들어오면 아래의 리스너가 실행된다.
16
-class Listener(StreamListener):
17
-    def on_data(self, data):
18
-        with open('sample.json', 'a', encoding='utf-8') as f:
19
-            json_data = json.loads(data)    # str -> json으로 변환
20
-            json.dump(json_data, f, ensure_ascii=False) # json을 원형 그대로 파일에 저장(인코딩 깨짐을 방지)
21
-            print(json_data)
22
-        return True
23
-
24
-    def on_error(self, status):
25
-        print("ERROR: " + str(status))
26
-
27
-def main():
28
-    # 리스너 생성
29
-    l = Listener()
30
-    auth = OAuthHandler(consumer_key, consumer_secret)
31
-    auth.set_access_token(access_token, access_secret)
32
-    stream = Stream(auth, l) # 리스너와 인증키을 통해 스트리밍 객체 생성
33
-
34
-    # 언어=한국어(ko), 해시태그=필터할 단어
35
-    stream.filter(languages=["ko"], track=['손흥민'])
36
-
37
-if __name__ == '__main__':
38
-    main()
39
-
1
+# https://imasoftwareengineer.tistory.com/97?category=791547
2
+import tweepy
3
+from tweepy.streaming import StreamListener
4
+from tweepy import OAuthHandler
5
+from tweepy import Stream
6
+import json
7
+
8
+# twitter 계정이 있다면 앱을 만들어서 등록
9
+# 그렇지 않을 시에는 데이터베이스에 있는 정보 등록
10
+consumer_key = 'xx'
11
+consumer_secret = 'xx'
12
+access_token = 'xx'
13
+access_secret = 'xx'
14
+
15
+# 리스너 - 스트리밍 API로 부터 값이 들어오면 아래의 리스너가 실행된다.
16
+class Listener(StreamListener):
17
+    def on_data(self, data):
18
+#         all_data = json.loads(data)
19
+#         tweet = all_data["text"]    # 트위터 내용 중 text 정보만 가져오고 싶을 때,
20
+        with open('sample.json', 'a', encoding='utf-8') as f:
21
+            json_data = json.loads(data)    # str -> json으로 변환
22
+            json.dump(json_data, f, ensure_ascii=False) # json을 원형 그대로 파일에 저장(인코딩 깨짐을 방지)
23
+            print(json_data)
24
+        return True
25
+
26
+    def on_error(self, status):
27
+        print("ERROR: " + str(status))
28
+
29
+def main():
30
+    # 리스너 생성
31
+    l = Listener()
32
+    auth = OAuthHandler(consumer_key, consumer_secret)
33
+    auth.set_access_token(access_token, access_secret)
34
+    stream = Stream(auth, l) # 리스너와 인증키을 통해 스트리밍 객체 생성
35
+
36
+    # 언어=한국어(ko), 해시태그=필터할 단어
37
+    stream.filter(languages=["ko"], track=['손흥민'])
38
+
39
+if __name__ == '__main__':
40
+    main()
41
+
40 42
 main()