へいちゃんのブログ
1 | 2 | 3 | 4 | 5 | 最初次のページへ >>

ニュースのページから単語を抜き出す。

NHKニュースのRSSから単語を抜き出してみる。

import requests
from bs4 import BeautifulSoup
from sudachipy import tokenizer, dictionary
import re

# ① RSSからタイトル取得
url = "https://www3.nhk.or.jp/rss/news/cat0.xml"
xml = requests.get(url).text
soup = BeautifulSoup(xml, "xml")

titles = [item.title.get_text(strip=True) for item in soup.find_all("item")]

# ② SudachiPy準備
tokenizer_obj = dictionary.Dictionary().create()
mode = tokenizer.Tokenizer.SplitMode.C

# ★ 追加:不要語フィルタ
stopwords = {
    "が","の","に","を","で","は","と","も","か","や","へ","だ","な",
    " "," ","", "など", "めぐり",
    "「","」","“","”","『","』","(",")"
}

def is_valid(word):
    # 空白・ストップワード
    if word in stopwords:
        return False
    # ひらがな1〜2文字
    if re.fullmatch(r"[ぁ-ん]{1,2}", word):
        return False
    return True

def extract_phrases(text):
    tokens = tokenizer_obj.tokenize(text, mode)
    phrases = []
    current = []

    def is_noun(t):
        return t.part_of_speech()[0] == "名詞"

    def should_combine(prev, curr):
        return is_noun(prev) and is_noun(curr)

    for i, t in enumerate(tokens):
        if i == 0:
            current.append(t.dictionary_form())
            continue

        prev = tokens[i-1]

        if should_combine(prev, t):
            current.append(t.dictionary_form())
        else:
            phrases.append("".join(current))
            current = [t.dictionary_form()]

    if current:
        phrases.append("".join(current))

    return phrases

# ③ 全タイトルに適用
all_phrases = []
for title in titles:
    all_phrases.extend(extract_phrases(title))

# ④ 出力(フィルタ適用)
filtered = [p for p in all_phrases if is_valid(p)]
result = ",".join([f'"{p}"' for p in filtered])
print(result)
print("語句数:", len(filtered))


 

座りっぱなしは体に悪い?

PCに向かってダラダラと遊んでいると腰が痛くなっちゃったりします。

そんなときは体操しましょう。

 

PCに向かっていると、30分ごとに再生されます。^^;

$youtubeURL = "https://www.youtube.com/watch?v=8sQw_Ybq7r4"
$mpvPath = "C:\Program Files\mpv\mpv.exe"
$ytDlpPath = "C:\Program Files\yt-dlp\yt-dlp.exe"

while ($true) {
    # YouTubeの動画URLを取得(t=22sは無視される)
    $videoURL = & $ytDlpPath -f b --get-url $youtubeURL

    # mpvで22秒後から再生
    $mpvProcess = Start-Process -FilePath $mpvPath -ArgumentList "--start=20 $videoURL" -PassThru

    # 3分待機(動画の長さ)
    Start-Sleep -Seconds 172

    # mpvを終了
    Stop-Process -Id $mpvProcess.Id -Force -ErrorAction SilentlyContinue

    # 30分待機(次のストレッチまで)
    Start-Sleep -Seconds 1800
}


 

WiFiミレル(スマホアプリ)のヒートマップを使ってみる。

家のWiFiの電波状況を調べることができる"WiFiミレル"

 

これに"ヒートマップ"っていうタブがある。

家の間取り図を読み込ませて、WiFiの電波状況を表示させることができる。

 

こんな感じ。2階は、左上の部屋が電波弱い 事がわかる。

 

引っ越しの時家具の配置を決めるのに JW-CADで作った図面があったので、それを読み込ませました。

jwwそのままだと無理なので、JW-CADで図面を開いたら、「印刷」を選択。

プリンターを "Microsoft Print to PDF"に設定して 「印刷」ボタンで 名前をつけて保存。

 

PDFファイルができたら、GIMPで読み込ませて 形式を PNG にして、エクスポート

これで、図面のPNGファイルが出来上がり。

 

SMBとか、USBケーブル接続とか、メールとかで、PCから スマホに転送

"WiFiミレル"の"ヒートマップ"タブをタップして 右下の "+ "のアイコンをタップ

"ギャラリーから"をタップして
右上の"画像"のアイコンをタップして、保存した"画像.png"をタップ
ピンチアウト、ピンチインで、できるだけ表示枠にいっぱいにして、左上部の "チェックマーク"アイコンをタップ
これで一応保存されるから、図面の場所に行って、ヒートマップのその位置をタップ で、WiFiの電波状況が色付けされる。
調べたい箇所で、同様の操作をすると、ヒートマップの出来上がり(上の画像 タップしたとこが黒丸)
左上の"チェックマーク"のアイコンタップで、保存できます。

 

ちなみに、メッシュWiFiもどきで 2階にルーターを増設したら
 

こんな感じで、2階はどこでも良好になりましたとさ。

 

 

1 | 2 | 3 | 4 | 5 | 最初次のページへ >>