janomeを使用して、形態素解析します
import os from janome.tokenizer import Tokenizer tokenizer = Tokenizer() tokens = tokenizer.tokenize(u'すもももももももものうち') for token in tokens: print(token.surface)
すもも も もも も もも の うち
import os from janome.tokenizer import Tokenizer tokenizer = Tokenizer() tokens = tokenizer.tokenize(u'すもももももももものうち') for token in tokens: print(token.surface)
すもも も もも も もも の うち
VSCodeでAnaconda Prompt環境を構築する方法について記載します
まずはAnaconda Promptのパスを取得します。Windowsの検索画面から、ファイルの場所を開き、
次に、Anaconda Prompt (Anaconda3)のショートカットのプロパティを開き、リンク先を取得します。
Windowsの検索画面から VSCodeからファイル→基本設定→設定を選択して、設定画面を開きます。
Terminal>Integrated>Shell: Windowsの項目のsetttings.jsonを開きます。
以下のような情報が開かれるので、
terminal.integrated.shell.windows
を書き換え、
terminal.integrated.shellArgs.windows
を追加します。ここには、リンク先の第一引数、第二引数、第三引数を設定してください。私の例では以下のようになります。
{ "window.zoomLevel": 1, "explorer.confirmDelete": false, "python.terminal.activateEnvInCurrentTerminal": true, "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe", "terminal.integrated.shellArgs.windows": [ "/K" , "D:\\Anaconda3\\Scripts\\activate.bat" , "D:\\Anaconda3" ] }
VSCodeを再起動後、where python
コマンドを入力してください。Pythonのパスが表示されれば問題ありません。
(base) C:\Users\user>where python D:\Anaconda3\python.exe
以下のサイトを参考にしました。 Visual Studio Code のターミナルから Anaconda Prompt を開くようにする (Windows) - Qiita
以下のリンクに記載があります。
[Windows]「Anaconda」で作った仮想環境を「Visual Studio Code」から参照してみる。 - Qiita
正規表現を使うと文字列を素早く取得できます。
以下のサイトがとても参考になります。
書きながら覚える!Pythonで正規表現を使う方法【初心者向け】 | TechAcademyマガジン
import os import re def can_extract_date_YYYY_MM_DD(s): date_pattern = re.compile('^(\d{4})/(\d{1,2})/(\d{1,2})$') result = date_pattern.search(s) if result: y, m, d = result.groups() return True else: return False print(f'{can_extract_date_YYYY_MM_DD("2000/01/01")}') print(f'{can_extract_date_YYYY_MM_DD("2000/01/01/01")}')
True False
Pythonで定数を安全に使いたいなと思い、enumについてまとめました。詳しくは以下をご確認ください
enum --- 列挙型のサポート — Python 3.8.2 ドキュメント
列挙型は読み書きが容易になるよう class 文を使って作成します。 列挙型は以下のように Enum のサブクラスとして定義します。
from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3
print(Color.RED.value) print(Color.GREEN.value) print(Color.BLUE.value)
1 2 3
print(Color.RED) print(Color.GREEN) print(Color.BLUE) print(Color.RED.name) print(Color.GREEN.name) print(Color.BLUE.name)
Color.RED Color.GREEN Color.BLUE RED GREEN BLUE
for item in Color: print(item.value)
1 2 3
colors_set = {} colors_set[Color.RED] = 'apples' colors_set[Color.GREEN] = 'mountain' colors_set[Color.BLUE] = 'ocean' for key, value in colors_set.items(): print(f'{key.name} : {value}')
RED : apples GREEN : mountain BLUE : ocean
print(Color.BLUE == Color.RED) print(Color.BLUE != Color.RED) print(Color.BLUE == Color.BLUE) # ただし、非列挙型値との比較は常に不等となります print(Color.RED == 1)
False True True False
Django学習まとめ記事です。
素晴らしい公式ドキュメントがあります。
公式ドキュメント
検索したいときはここで検索したいキーワードを入力してください。 HttpResponse
など
BASE_DIR
のデフォルト値は以下のとおりです。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR
とはsetting.pyが入っているフォルダーの1個上の階層のフォルダーを指定します
- manage.pyが入っているフォルダーを指定
Pythonのロギングについて情報します。
from logging import basicConfig, getLogger, DEBUG # これはメインのファイルにのみ書く basicConfig(level=DEBUG) # これはすべてのファイルに書く logger = getLogger(__name__) logger.debug('hello')
ログ出力のための print と import logging はやめてほしい
Beautiful Soup使い方についてまとめる記事です。
Pythonのスクレイピングで使用されるライブラリは以下が主に以下があります。
役割や長所・短所は以下のようになります。
データの取得 | データの抽出 | 特徴 | |
---|---|---|---|
Beautiful Soup | 〇 | データの抽出が高速かつ簡潔だが、動的ページのスクレイピングが弱い | |
Requests | 〇 | ||
Selenium | 〇 | 〇 | 動的ページのスクレイピングに強いが、データの抽出が低速かつ複雑 |
BeautifulSoupライブラリを用いて、スクレイピングする場合は、以下の2つのライブラリのインストールが必要です。
以下のどちらかの方法でインストール可能です。
pip installコマンドを使用
pip install beautifulsoup4
conda installコマンドを使用
conda install beautifulsoup4
pip installコマンドを使用
pip install requests
conda installコマンドを使用
conda install requests
以下のサイトhttp://www.nikkei.com/markets/kabu/
から日経平均株価を取得します。
タブの文字列はタグ名.text
あるいはタグ名.string
どちらか使用できます。詳しくは以下のサイトを見てください。
import urllib.request from bs4 import BeautifulSoup url = "http://www.nikkei.com/markets/kabu/" html = urllib.request.urlopen(url) soup = BeautifulSoup(html,"html.parser") span = soup.find(class_="mkc-stock_prices") print(span) print(f"span.text = {span.text}") print(f"span.string = {span.string }")
<span class="mkc-stock_prices">23,386.74</span> span.string = 23,386.74 span.text = 23,386.74
まず、以下のページがとてもわかりやすいです。