pythonとさくらレンタルサーバー

2024.05.12

Logging

おはようございます、さくらレンタルサーバーでMecabというライブラリが使えないかと試みた結果、使用できましたので、そのご報告です.なお、さくらレンタルサーバーでpipを動かす方法はググってください.pipが導入できたら次のコマンドよりインストールが出来ます.

pip install mecab

最初、mecab-python3をインストールを試みましたがこれはどうもさくらレンタルサーバーでは導入出来なさそうです.インストール先をオプションで変えれば出来るかも知れませんけど自分は辞めました.

pip install mecab-python3

mecabライブラリをインストールすることにより、今までAPIを頼っていた部分をmecabライブラリに置き換えが出来ました.これは自分にとって結構経費削減になります.少しでも月々の引き落としを減らせるところは減らしたいと思っているので.

明日へ続く.

著者名  @taoka_toshiaki

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

API, Mecab, mecab-python3, mecabライブラリ, pip, pip install mecab, pip install mecab-python3, インストール, インストール先, オプション, コマンド, さくらレンタルサーバー, ライブラリ, 少し, 最初, 月々, , 経費削減, 結果, 部分,

Photo by Pixabay on Pexels.com

機械学習でオススメ記事を作ってみる。

2023.10.24

Logging

おはようございます、機械学習でオススメ記事を作ってみる。仕組みはこんな感じです😄。

  • 記事から同じ傾向の記事を取得する。
  • 記事のMeCabを使用して分割。分離したものを機械学習に投入。
  • 出来上がったモデルから似ている傾向の記事を抽出。
  • 新規記事を投稿した場合、再学習させモデルに追加。

上記の流れをCHATGPTに投げ込んでコードを生成してもらい、そのコードを再修正してAPI化したものを仕事終わりに週末作ろうと思っています。出来ればそれを元に自分だけしか使えないプラグインにしてWordPressに取り組むつもりでいます。

これでどれぐらいの精度がでるのかは、やってみないと分かりませんが試す価値はあるかなって思っています。あと、作りたいのはクリックしたものを機械学習させて何か出来たら良いなって思っています、また、記事学習モデルから、チャット形式でこんな記事はどうですかってオススメする物を作りたいですね。

明日へ続く。

著者名  @taoka_toshiaki

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

API化, ChatGPT, Mecab, WordPress, コード, チャット形式, プラグイン, モデル, 仕事終わり, 価値, 傾向, , 分割, 投入, 抽出, 機械, 機械学習, 精度, 記事学習モデル, 週末,

あるキーワードをライクするTwitter API。

2019.11.06

Logging

さくらレンタルサーバー、もともとmecab(メカブ)が入っているらしい。
自動であるキーワードに対してライクする方法(Twitter API)です。
たぶん、こんなコードはなかったと思います、
過去記事「ワードプレス過去記事のツイートをボット化する方法。」と併用してお使いください。
そうでないと動きませんので…。
知り合いエンジニアさんとかに組み込んでもらってください。

<?php
function mecab_tw_like($txt="",$connection=Null){
    if(!$txt)return false;
    if(!is_object($connection))return false;
    $cmd = "echo "$txt" | mecab";
    exec($cmd, $opt, $return_ver);
    //var_dump($opt);
    foreach($opt as $key=>$val){
        $r = explode("t",$val);
        if(preg_match("/名詞/",$r[1])){
            $statuses = $connection->get(
                'search/tweets',
                array(
                    'q'                 => $r[0],
                    'count'             => '3',
                    'lang'              => 'ja',
                    'locale'            => 'ja',
                    'result_type'       => 'recent',
                    'include_entities'  => 'false'
                )
            );
            if(is_array($statuses->statuses) and $statuses->statuses){
                foreach( $statuses->statuses as $tweet ){
                    $id = $tweet->id;
                    $result = $connection->post(
                        'favorites/create',
                        array(
                            'id' => $id
                        )
                    );
                }
            }
        }
    }
}

著者名  @taoka_toshiaki

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

API, cmd, connection, echo, exec, false, function, if, is, like, lt, Mecab, null, object, opt, php, quot, return, tw, Twitter, txt, ver, エンジニア, キーワード, コード, サーバー, さくら, ツイート, プレス, ボット, メカブ, ライク, レンタル, ワード, 併用, 方法, 自動, 記事, 過去,

Pythonコード:demo

2019.11.05

Logging

#!/usr/local/bin/python3
# coding:utf-8
import os
import sys
import MeCab
import gensim
import markovify
import unicodedata
model = gensim.models.KeyedVectors.load_word2vec_format('/var/www/html/model.vec', binary=False)
f = open('merosu.txt')
tagger = MeCab.Tagger("-Owakati")
tagger.parse('')
text0 = tagger.parse(f.read())
text1 = text0
text0 = text0.replace('\n','')
text0 = text0.replace('\r','')
text1x = text0.split(" ")
text2 = []
try:
    for item in text1x:
        if item.strip():
            results  = model.most_similar(positive=[item],topn=2)
            #"print(results)
            for val1 in results:
                text2.append(val1[0] + "\n")
#
    # print (text1)
    # print (" ".join(text2))
    model_a = markovify.Text(text1 + "\n")
    print(str(model_a.make_sentence()).replace(' ',''))
    model_b = markovify.Text(" ".join(text2))
    print(str(model_b.make_sentence()).replace(' ',''))
    model_combo = markovify.combine([model_a, model_b], [1, 1])
    print(str(model_combo.make_sentence()).replace(' ',''))
except Exception as e:
    print("動作エラー", e.args)
    pass

著者名  @taoka_toshiaki

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

-Owakati, 'merosu, 0, , 2, , 39, 8, bin, binary, coding, demo, false, format, gensim, html, import, KeyedVectors, load, local, markovify, Mecab, model, models, open, OS, parse, Python, quot, read, replace, sys, tagger, Text, txt, unicodedata, usr, UTF-, var, Vec, Word, コード,