忍者ブログ

開発者ブログ

忍者ブログの元開発者が送る愛と感動と涙のスペクタクル。プログラムの開発日誌やタダの日記です。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

過去記事チェッカーのバグ

過去記事チェッカーでキーワードが引っかかるという話について。
こちら、キーワードは元々除いて処理をしていたのですが、皆様が書かれている通り一部のキーワード(キーワードに半角スペースが含まれているもの)で引っかかってしまう問題がありました。

先ほど修正しましたので、同内容の問題は発生しないかと思います。

大切な記事を無駄にしてしまった方もいらっしゃるかと思います。
ご迷惑をおかけした皆様、本当に申し訳ございませんでした。

拍手[0回]

PR

スペシャルライターのこと

最近某掲示板では、なりきり案件やめてくれという厳しいご意見が多く見受けられます。
該当の案件は確かに難易度の割に単価が低めなため、個人的にも需要と供給のバランスが悪いと感じております。
その他のご指摘に関しても問題だと感じている部分が多く、改善したいと考えています。
良い案件、良いサービスが提供できるよう全力を尽くしておりますので、今しばらくお待ちください。

開発状況は現在あるような問題を解決するための直近の作業はもちろんこと、半年~1年ほどの中期的な視点、2~3年の中長期的な視点のそれぞれで進めております。

最近アンケート形式の案件が出てきているのを皆様もご存じかと思います。
これは中期的な視点での取り組みです。
このような複合的な案件を導入することでクライアント様のニーズを拾い上げ、需給バランスを取ろうと行動しています。
私的にはアンケート形式の取り組みは、ライター様の書きやすさとクライアント様のコンテンツとしての質の両方を実現できるものと考え進めているのですが、皆様はどのように感じられているでしょうか?
アンケート形式の案件を行ったことがある方がおりましたら、是非ご感想などをお寄せください。
その他、感じるところが御座いましたら、率直なご意見がいただければ幸いです。

シンプルなライティングの方も、あの手この手でニーズを拾う取り組みをしています。
その一環として、EC向けのライティングに特化したサービスを本日11日にオープンする予定です。
上手くいけば商品説明などの案件が増えるかも知れません。


また、スペシャルライターという取り組みは実際に存在しています。
スペシャルライター様には、たまに良い案件を公開しています。
これの新しい取り組みとしてライターランクを導入したいと目論んでいます。
こちらも来年導入したい内容の一つです。

今年はキャンペーンなどは多く出せましたが、なかなか機能面でライター様の環境を良くすることが出来ませんでした。
来年こそは機能的な問題点の改善を進めてまいります。

拍手[2回]

Shinobiライティングの誤字脱字チェックとアカウント変更の話

私は某掲示板の「Shinobiライティング 〇文字目」を良く見ています。
この間、私のブログを見てくれてそうなレスも拝見しました。

私は基本、透明感のあるサービス運営が好きなので、なるべくオープンにやって行きたいと考えています。
某掲示板に社員が出てしまうのは個人的にルール違反だと考えているので、あちらでは返しませんが、何かご要望とかご意見とかご質問とかあれば是非「非公開コメント」でも頂ければと思います。(コメントに非公開希望とか書いていただければ公開しません。)

私はShinobiライティングの担当に決まった際、Shinobiライティングに関する記事を書いていただけている数名の方にコメントをさせていただきました。
私自身、ライター様がShinobiライティングをどのように感じているかを知りたかったためです。
書いたコメントは「いろいろご意見をください」のような内容です。

私はライターの皆様とコミュニケーションを取りたいと考えています。
実装したいことの相談や、実装後の感想、皆様の考えるご要望など、いろいろな話し合いをしたいと考えているのです。
是非気が向きましたらコメントをいただければと思います。
(そのうちShinobiライティング上でQ&Aシステムを導入し、その場で意見の交換などをさせて頂くかも知れません。)


さて。某掲示板のスレッドで、昨日は誤字脱字判定の話が出ていました。

>吸収の「吸」って字が誤字脱字判定で黄色くなりまくった

こんなコメントがありましたが、これは正しい場合も引っかかってしまうケースがありますね。
「石の硬度が高い」なんていう文字も誤字として認識されてしまったりします。

誤字脱字の自動判別はデータベースを使用した判定のため、稀ですが間違った判定もします。
そのため、厳密な正誤判定には適していません。
現在のところは注意を促すためのツールですので、間違っていないと判断された場合はそのまま投稿していただければと思います。
※ただし、今後は自動判定に使う可能性があります。その時は違う言い回しに変えていただければ・・・などと考えています。


また、「アカウントを良く変えている」というコメントも見受けられました。
こちらは、デメリットしかないと思うのでお勧めしません。
以下につらつらとその理由を書いてみます。

理由1.過去記事チェックにアカウントが関係ないから

弊社の過去記事チェックは個人のみだけではなく、全記事から判定します。
これは、過去記事チェックの必要性を考えていただければお分かりいただけるのではないかと思います。

過去記事チェックはコピーコンテンツチェックの一種です。
クライアント様のニーズの一つとして、コンテンツの重複が無い記事であることが上げられます。
記事の品質とは、「クライアント様のニーズ」に合っているかどうかであると考えています。
「別アカウントであれば同じような記事が書かれても良い」というニーズは、クライアント様にはないと思うのです。

そのため、弊社の過去記事チェックには個人投稿での重複チェックというセグメントはありません。

逆に、ライター様のニーズである「なるべく承認にしてもらいたい」や「なるべく稼ぎたい」のことも考えています。
過去記事チェックは常に最適になるようにチェックをしています。

個人投稿での過去記事チェックの重複が通常では発生しないレベルで調整しています。

ロジックや閾値を調整する際、プログラムを書き換えるのは非常に容易ですが、その何倍もの時間を問題ありと判定された記事を読むことに費やしています。

私が見た感じ、過去記事で引っかかる方は以下のような方です。

・元記事を流用してリライトしている
・起承転結をテンプレート化している
・接続詞を多用されたり、似たような修飾文が多すぎる

これは、結果的に悪文になってしまったりコピーコンテンツとして検知されてしまうので、極力避けた方が良いかと思います。
もしくは、あまり大きな声では言えませんが、もっと精度を上げていただければ・・・と思います。

そんな理由が、アカウントを変えるのが無駄という理由の一つ。

理由2.ライターランクで不利になるから

もう一つは先日書いたライターランク導入の話。

ライターランクは、基本的には加点方式になると思います。(減点つけると思いますが)
その場合、長期間継続利用という点も加える可能性があります。
そのため、アカウントを変えることはデメリットにしかならないと思うのです。
(現時点で後ろめたいことをされている場合は変えた方が良いかも知れません。アカウント変更後にきちんとした記事を書いていただけるのであれば推奨します。)

ライター様にはいろいろな角度から加点をしたいと考えています。(個人的には)

・記事の品質の高さ(自動判定及び目視加点)
・記事の投稿数の多さ(もしくは文字数)
・登録後の期間(正確には稼働日数)
・誰も書きたがらない案件を書いてくれた記事数(もしくは文字数)
・超マニアックな案件を書いてくれた記事数(もしくは文字数)

他にも出てくると思いますが、「貢献度」「品質」「投稿量」の3軸のポイントバランスで作りたいと考えています。

ライターランクが高い場合、以下のような仕組みにしたいと考えています。

・記事の複数エントリーが出来る(一定数、一定期間)
・高単価案件の優遇
・特定案件公開のお知らせ

現在、正直なことを言いますと超高単価案件をプロライターの方に書いていただいております。
弊社のライター様の中にもこのような案件を書くことが出来る方がいると思っています。
来年度は、より一層高品質が求められる案件が多くなります。

皆様に良い案件を書いていただけるようにいろいろ試行錯誤していきます。
是非皆様も良い案件を取れるように準備をしていただければと思います。

拍手[1回]

Shinobiライティングに過去記事チェッカーを導入しました。



過去記事チェッカーを導入しました。

私はここ一年ほどShinobiライティングの開発を進めております。
ここ最近進めているのは、記事の品質向上施策です。

その一環で、本日Shinobiライティングに過去記事チェッカーを導入しました。
目的は記事の品質向上と、承認率の向上です。

記事の品質を上げるためにチェックロジックの閾値を上げることは可能ですが、そのためにライター様への報酬(時給換算)が下がってしまうのは問題です。
このどちらも実現させるために、投稿後に審査を行う従来タイプのものではなく、投稿時点でチェックを行い、問題があった場合には差し戻して再投稿をしていただく形にしました。

今回導入したものは「過去に投稿された記事との重複チェック」です。

同じような記事を何記事も納品されてしまうのは問題となってしまいます。
これを改善させるためのチェッカーとなっております。

Shinobiライティングでは、他にも様々な自動チェックや目視による確認などが行われていますが、自動で判定できるチェック部分はなるべく投稿時にチェックを行い、記事の修正が出来るようにしていきたいと考えております。


今後検討しているチェックについて

記事の品質を計測するためには、いくつかの点があると考えています。

・コピーコンテンツの重複率
 WEB上に存在するコンテンツとの重複率
 過去に投稿されたコンテンツとの重複率

・記事内容の重複率
 文章の内容、文脈の一致等での重複率(文字、単語の一致ではない)

・日本語構文チェック
 表記ゆれ、誤字脱字、接続詞頻出、助詞連続使用等

・事象の事実確認、ソース元等のチェック
 日本の人口が5億人を超えましたが←事実と異なる

・クライアントのニーズに合っているか
 希望通りの内容であるか、無関係な記載がないか

日本語の解析には、形態素解析、係り受け解析、構文解析、意味解析、文脈解析などなど、様々な解析があります。
自動で判別出来ないこともありますが、様々な解析を作ることで大よそ自動化することが可能です。
実際、解析のシステム自体はだいぶ整ってきており、ライター様にどのように指摘をするのか、閾値をどこに設定するかの調整段階となっています。

クライアント様や案件によってはチェックが不要なものもあります。
品質と納品速度は反比例するものであると考えており、そこを調整するものが記事の単価であると考えています。

様々なニーズがある中で、クライアント様のニーズとライター様のニーズのそれぞれに応えられるであろう最適解が出せた時点で、他のフィルターを導入して行きたいと考えています。


個人的に企んでいること

ライターランクを導入したいと考えております。
だいぶ前から提案しておりますが未だに実現できてない案件の一つです。

今後、Shinobiライティングではより高品質な案件を増やしていきたいと考えているのですが、ライター様にはどうしても品質のバラつきがあります。
高品質な案件ほど高単価な案件になると考えておりますが、高単価な案件はどうしてもすぐになくなってしまう傾向があります。
あまり品質が高くない記事を書いているライター様に記事を書かれてしまうと、クライアント様はもとより、高品質な記事を書くライター様にも機会損失となってしまうため、色々と問題があると考えているのです。

そのため、品質や貢献度に関するライターのランクを導入し、ランクに応じた公開制限を設けたらどうかと考えているのです。

その際は過去に投稿された記事品質によるポイントや貢献度によるポイントなどから集計してそれぞれのランク分けを行うことになるかと思います。

・・・出来たらいいなー。

拍手[0回]

PHPで日本の祝日判定処理

来年久しぶりに国民の祝日があるらしいので、需要あるかな?と思ってソースを置いておきます。
ご自由にお使いください

2008年以降の日本の祝日の判定です。
2016年から始まる山の日も含まれています。
(今年から祝日が増えるのか!!!と思ってwktkした祝日です。がっかりしました)

2007年以前の過去で使用したい場合は5/4の扱いが変わるのでちょっと書き換える必要があります。

未来については祝日が増えるまでは変えなくて良いはず。
※mktimeを使っているので、環境によっては2038年までしか使えないかもしれません。

・祝日が増える/減る
・地球の自転がおかしくなる

などがあると修正が必要になります。


http://file.samurai.blog.shinobi.jp/Holiday.php


/*
* ZendX_Date_Holiday
*
* 2007年以降の日本の祝日を判定します
*
* 2006年より過去に遡った調査をする場合は要調整(5/4が国民の休日になる)
* wikipedia(http://ja.wikipedia.org/wiki/国民の祝日)とかで確認して$ddやkokumin()、spring()、autumn()辺りを調整してください
*
* @cateogry ZendX
* @package ZendX_Date
* @author misney <mizuno@ninja.co.jp>
*/
class ZendX_Date_Holiday {

/**
* 平日かな?
*
* @return boolean
*/
public static function isWeekday($y, $m, $d) {
if (self::isHoliday($y, $m, $d)) {
return false;
} else {
return true;
}
}

/**
* 祝日かな?
*
* @return boolean
*/
public static function isHoliday($y, $m, $d) {
$t = mktime(0,0,0,$m,$d,$y);
$w = date("w", $t);
$wc = intval($d / 7) + 1;

//祝日定義
$dd = array(
1=>array(1=>true, 'function'=>array('monday2')),
2=>array(11=>true),
3=>array('function'=>array('spring')),
4=>array(29=>true),
5=>array(3=>true, 4=>true, 5=>true),
7=>array('function'=>array('monday3')),
9=>array('function'=>array('autumn', 'monday3', 'kokumin')),
10=>array('function'=>array('monday2')),
11=>array(3=>true, 23=>true),
12=>array(23=>true),
);

//山の日は2016年から
if ($y >= 2016) {
$dd[8] = array(11=>true);
}

if (!empty($dd[$m][$d])) {//決められた祝日
return true;
}

//ハッピーマンデイや春秋分、国民の休日がある月は関数処理
if(!empty($dd[$m]['function'])) {
foreach ($dd[$m]['function'] as $func) {
if (self::$func($y, $m, $d, $w, $wc, $t)) {
return true;
}
}
}

//水曜日までは振替休日をチェック。
if ($w < 4) {
$_w = $w;
$_y = $y;
$_m = $m;
$_d = $d;
while($_w > 0) {
//1日の場合は前月末日を作成する
if ($d == 1) {
$t = $t - 86400;
$_y = date("Y", $t);
$_m = date("m", $t);
$_d = date("d", $t);
} else {
$_y = $_y;
$_m = $_m;
$_d = $_d - 1;
}

if (self::isHoliday($_y, $_m, $_d)) {
$_w--;
if ($_w == 0) {
return true;
}
} else {
break;
}
}
}
return false;
}

/**
* ハッピーマンデーかな?(第2月曜日)
*
* @return boolean
*/
private static function monday2($y, $m, $d, $w, $wc, $t) {
if ($w == 1 && $wc == 2) {
return true;
}
return false;
}

/**
* ハッピーマンデーかな?(第3月曜日)
*
* @return boolean
*/
private static function monday3($y, $m, $d, $w, $wc, $t) {
if ($w == 1 && $wc == 3) {
return true;
}
return false;
}

/**
* 春分の日かな?
*
* 前年2月の最初の平日に制定されるらしい。(官報に掲載される暦要項)
* 地球の運行状態が変化した場合などに変更される可能性はあるらしい(過去には無い)
*
* @return boolean
*/
private static function spring($y, $m, $d, $w, $wc, $t) {
$p = $y % 4;
switch($p) {
case '1':
$_d = '20';
break;
case '2':
if ($y < 2023) {
$_d = '21';
} else {
$_d = '20';
}
break;
case '3':
if ($y < 2056) {
$_d = '21';
} else {
$_d = '20';
}
break;
default:
if ($y < 2089) {
$_d = '20';
} else {
$_d = '19';
}
break;
}
if ($d == $_d) {
return true;
}
return false;
}


/**
* 秋分の日かな?
*
* 前年2月の最初の平日に制定されるらしい。(官報に掲載される暦要項)
* 地球の運行状態が変化した場合などに変更される可能性はあるらしい(過去には無い)
*
* @return boolean
*/
private static function autumn($y, $m, $d, $w, $wc, $t) {
$p = $y % 4;

switch($p) {
case '1':
if ($y < 2042) {
$_d = '23';
} else {
$_d = '22';
}
break;
case '2':
if ($y < 2075) {
$_d = '23';
} else {
$_d = '22';
}
break;
case '3':
$_d = '23';
break;
default:
if ($y < 2009) {
$_d = '23';
} else {
$_d = '22';
}
break;
}

if ($d == $_d) {
return true;
}
return false;
}

/**
* 国民の休日かな?
*
* 祝日と祝日に挟まれた日は祝日というオセロのような祝日。
* 2013年現在は9月21日or22日の火曜日にしか発生しない。
*
* @return boolean
*/
private static function kokumin($y, $m, $d, $w, $wc, $t) {
if (($d == 21 || $d == 22) && $w == 2) {
if (self::isHoliday($y, $m, $d-1, $w-1, $wc, $t) && self::isHoliday($y, $m, $d+1, $w+1, $wc, $t)) {
return true;
}
}
return false;
}

}

拍手[0回]

おまとめボタン

忍者カウンター

忍者ビジター

忍者アド

ブログ内検索

最新コメント

プロフィール

HN:
mizuno
年齢:
43
HP:
性別:
男性
誕生日:
1974/02/13
職業:
主に侍などを少々
趣味:
SEO(「申し訳ございません」や「指ぱっちん」「指定したサイトへは接続できませんでした」でググルと上位に。)
自己紹介:
母子手帳の仮死と書かれてる場所に丸されてます。

フリーエリア

忍者ツールズプロフィール

忍者ツールズプロフィールは終了しました