teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

修正

2019/07/15 07:57

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  return render(request, 'classifier/index.html',d)
50
50
 
51
-
51
+ ```
52
52
  ```Python
53
53
  #index.html
54
54
  {% extends "classifier/base.html" %}

6

修正

2019/07/15 07:57

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -19,34 +19,34 @@
19
19
 
20
20
  if url == None:
21
21
  d = {
22
- category = "urlを入力して下さい。"
22
+ 'category' : "urlを入力して下さい。"
23
23
  }
24
24
  else:
25
25
  # 入力されたURLでの本文を取得する。
26
26
  r = requests.get(url)
27
27
  soup = BeautifulSoup(r.text, 'lxml')
28
- text = soup.find_all('p')
28
+ doc = soup.find_all('p')
29
29
 
30
30
  #取得した本文を形態素解析し、名詞のみ抽出
31
31
  word_list=''
32
+ for text in doc:
32
- m = MeCab.Tagger()
33
+ m = MeCab.Tagger()
33
- m_text = m.parse(text.text)
34
+ m_text = m.parse(text.text)
34
- for row in m_text.split("\n"):
35
+ for row in m_text.split("\n"):
35
- word =row.split("\t")[0]#タブ区切りになっている1つ目を取り出す。ここには形態素が格納されている
36
+ word =row.split("\t")[0]#タブ区切りになっている1つ目を取り出す。ここには形態素が格納されている
36
- if word == "EOS":
37
+ if word == "EOS":
37
- break
38
+ break
38
- else:
39
+ else:
39
- pos = row.split("\t")[1]#タブ区切りになっている2つ目を取り出す。ここには品詞が格納されている
40
+ pos = row.split("\t")[1]#タブ区切りになっている2つ目を取り出す。ここには品詞が格納されている
40
- slice = pos[:2]
41
+ slice = pos[:2]
41
- if slice == "名詞":
42
+ if slice == "名詞":
42
- word_list = word_list +" "+ word
43
+ word_list = word_list +" "+ word
43
44
 
44
45
  d = {
45
46
  'category': word_list
46
47
  }
47
48
 
48
49
  return render(request, 'classifier/index.html',d)
49
- ```
50
50
 
51
51
 
52
52
  ```Python

5

修正

2019/07/15 07:55

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,11 +16,12 @@
16
16
  def index(request):
17
17
 
18
18
  url = request.GET.get('url')
19
-    #追加(1)
19
+
20
20
  if url == None:
21
+ d = {
21
- category = "urlを入力して下さい。"
22
+ category = "urlを入力して下さい。"
23
+ }
22
24
  else:
23
- #/追加(1)
24
25
  # 入力されたURLでの本文を取得する。
25
26
  r = requests.get(url)
26
27
  soup = BeautifulSoup(r.text, 'lxml')
@@ -40,9 +41,9 @@
40
41
  if slice == "名詞":
41
42
  word_list = word_list +" "+ word
42
43
 
43
- d = {
44
+ d = {
44
- 'category': word_list
45
+ 'category': word_list
45
- }
46
+ }
46
47
 
47
48
  return render(request, 'classifier/index.html',d)
48
49
  ```

4

urlがNoneの場合

2019/07/15 07:44

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  ![エラーの内容](943f2b3f634cb39a2309b19c8758d831.png)
8
8
 
9
+ **・urlがNoneの場合の処理をviews.pyに追加**
9
10
  ```Python
10
11
  #Views.py
11
12
  from django.http.response import HttpResponse
@@ -13,35 +14,40 @@
13
14
  from bs4 import BeautifulSoup
14
15
 
15
16
  def index(request):
17
+
16
18
  url = request.GET.get('url')
19
+    #追加(1)
20
+ if url == None:
21
+ category = "urlを入力して下さい。"
22
+ else:
23
+ #/追加(1)
24
+ # 入力されたURLでの本文を取得する。
25
+ r = requests.get(url)
26
+ soup = BeautifulSoup(r.text, 'lxml')
27
+ text = soup.find_all('p')
17
28
 
18
- # 入力されURLでの本文を取得する。
29
+ #取得した本文を形態素解析し、名詞のみ抽出
30
+ word_list=''
19
- r = requests.get(url)
31
+ m = MeCab.Tagger()
20
- soup = BeautifulSoup(r.text, 'lxml')
21
- text = soup.find_all('p')
32
+ m_text = m.parse(text.text)
33
+ for row in m_text.split("\n"):
34
+ word =row.split("\t")[0]#タブ区切りになっている1つ目を取り出す。ここには形態素が格納されている
35
+ if word == "EOS":
36
+ break
37
+ else:
38
+ pos = row.split("\t")[1]#タブ区切りになっている2つ目を取り出す。ここには品詞が格納されている
39
+ slice = pos[:2]
40
+ if slice == "名詞":
41
+ word_list = word_list +" "+ word
22
42
 
23
- #取得した本文を形態素解析し、名詞のみ抽出
24
- word_list=''
25
- m = MeCab.Tagger()
26
- m_text = m.parse(text.text)
27
- for row in m_text.split("\n"):
28
- word =row.split("\t")[0]#タブ区切りになっている1つ目を取り出す。ここには形態素が格納されている
29
- if word == "EOS":
30
- break
31
- else:
32
- pos = row.split("\t")[1]#タブ区切りになっている2つ目を取り出す。ここには品詞が格納されている
33
- slice = pos[:2]
34
- if slice == "名詞":
35
- word_list = word_list +" "+ word
36
- return word_list
37
-
38
43
  d = {
39
- 'category': wordlist
44
+ 'category': word_list
40
45
  }
41
46
 
42
- return render(request, 'index.html',d)
47
+ return render(request, 'classifier/index.html',d)
43
48
  ```
44
49
 
50
+
45
51
  ```Python
46
52
  #index.html
47
53
  {% extends "classifier/base.html" %}

3

追加

2019/07/15 07:42

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -39,7 +39,7 @@
39
39
  'category': wordlist
40
40
  }
41
41
 
42
- return render(request, 'classifier/index.html',d)
42
+ return render(request, 'index.html',d)
43
43
  ```
44
44
 
45
45
  ```Python

2

追加

2019/07/15 07:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  例えば、フォームにyahoo.comと入力した場合、そのURLでの本文を取得し表示。
4
4
 
5
+ 下記はローカルでhttp://localhost:8000/index/にアクセスした際に起こるエラーです。
6
+
5
7
  ![エラーの内容](943f2b3f634cb39a2309b19c8758d831.png)
6
8
 
7
9
  ```Python

1

誤字

2019/07/15 06:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -57,4 +57,6 @@
57
57
  {% endblock %}
58
58
  ```
59
59
 
60
- かれこれ3時間ほど悩んでいるのです、解決できません。。よろしくお願いします。
60
+ かれこれ3時間ほど悩んでいるのです、解決できません。。よろしくお願いします。
61
+
62
+ また、エラーの解決に必要なファイルがあれば追加するので、お申し付けください。