/** * Display all comments by productId. * * @return Response */ public function index($productId) { $product = Product::where('id', $productId)->first(); $reviews = Review::where('productId', $productId)->get(); $product["reviews"] = $reviews; return $product; }
public function getIndex() { // 酒のレビューを取得。現在はサンプルのレビューを使用。 $reviews = Review::where('item_id', 41)->take(4)->get(); $last_result = array(); /*----------------------------------------- * 形態素解析, 係受け構文解析 *---------------------------------------*/ foreach ($reviews as $review) { $params = array('type' => 'chunk', 'text' => $review->content); $yahoo_result = YahooApi::fetch($params); if ($yahoo_result === false) { continue; } $last_result = Chunk::getChunks($yahoo_result, $review->content, $review, $last_result, $review->is_bought); } /*----------------------------------------- * 類義語検索 *---------------------------------------*/ foreach ($last_result as $key => $value) { $s = explode(',', $value['info']); // 名詞が形容詞にかかっている場合 if (preg_match('/.*?(名詞)/u', $s[2]) && preg_match('/.*?(形容|動詞)/u', $s[6])) { $adje = explode('-', $s[6]); // 品詞 $pos = explode('-', $s[5]); // 単語 $_adje = explode('-', $s[2]); // 品詞 $_pos = explode('-', $s[1]); // 単語 // for ($i = 0; $i < count($_adje); $i++) { // $syno = null; // if (preg_match('/.*?(名詞)/u', $_adje[$i]) && count($_adje) > 1) { // if ($_adje[0] == '名詞' && $_adje[1] == '助動詞') { // $syno = Thesaurus::checkThesaurus($_pos[$i]); // $_ll_result = array(); // if ($syno) { // $_ll_result['text'] = $syno['text']; // $_ll_result['rayer'] = $syno['rayer']; // $_ll_result['info'] = $value['info']; // $ll_result[trim($syno['text'])][] = $_ll_result; // } // } // } // } for ($i = 0; $i < count($adje); $i++) { $syno = null; if (preg_match('/^(形容|動詞)/u', $adje[$i], $match)) { // 形容詞が含まれていれば if ($match[0] == '形容') { $syno = Thesaurus::checkThesaurus($pos[$i]); if ($syno && $syno->text == '無い') { for ($j = 0; $j < count($_adje); $j++) { if ($_adje[$j] == '名詞') { $syno = Thesaurus::checkThesaurus($_pos[$i]); } } } } else { if ($match[0] == '動詞') { $_syno = Thesaurus::checkThesaurus($pos[$i]); if ($_syno && isset($pos[1])) { if (in_array($pos[0] . $pos[1], explode(',', $_syno->synonym))) { $syno = $_syno; } } } } if (!isset($syno)) { break; } $_ll_result = array(); // もし同じような形容詞があれば1つにまとめていく if ($syno) { $_ll_result['text'] = $syno['text']; $_ll_result['rayer'] = $syno['rayer']; $_ll_result['info'] = $value['info']; $ll_result[trim($syno['text'])][] = $_ll_result; } } } } else { if (preg_match('/.*?(副詞)/u', $s[2]) && preg_match('/.*?(名詞)/u', $s[6])) { $adje = explode('-', $s[6]); // 品詞 $pos = explode('-', $s[5]); // 単語 $_adje = explode('-', $s[2]); // 品詞 $_pos = explode('-', $s[1]); // 単語 for ($i = 0; $i < count($adje); $i++) { $syno = null; if (preg_match('/.*?(名詞)/u', $adje[$i])) { $syno = Thesaurus::checkThesaurus($pos[$i]); $_ll_result = array(); if ($syno) { $_ll_result['text'] = $syno['text']; $_ll_result['rayer'] = $syno['rayer']; $_ll_result['info'] = $value['info']; $ll_result[trim($syno['text'])][] = $_ll_result; } } } } } } echo '<pre>'; var_dump($ll_result); echo '</pre>'; }
public function delete($user_id = NULL) { $user = $this->prepare_user($user_id); if ($this->ion_auth->is_admin($user_id)) { $url = 'manage_admins'; } elseif ($this->ion_auth->is_manager($user_id)) { $url = 'manage_accounts'; } else { $url = 'admin_users'; } if ($this->ion_auth->is_collaborator($user_id)) { $this->c_user->delete($user); } $user_deleted = $this->ion_auth->delete_user($user->id); if (!$user_deleted) { $this->addFlash(lang('delete_error', [$this->ion_auth->errors()])); redirect('admin/admin_users'); } $sender = $this->get('core.mail.sender'); $sender->sendUserDeleteMail(array('user' => $user)); $access_token = new Access_token(); $access_token->where('user_id', $user->id)->get()->delete_all(); $directory_user = new Directory_User(); $directory_user->where('user_id', $user->id)->get()->delete_all(); $facebook_fanpage = new Facebook_Fanpage(); $facebook_fanpage->where('user_id', $user->id)->get()->delete_all(); $keyword = new Keyword(); $keyword->where('user_id', $user->id)->get(); foreach ($keyword as $k) { $keyword_rank = new Keyword_rank(); $keyword_rank->where('keyword_id', $k->id)->get()->delete_all(); } $keyword->delete_all(); $media = new Media(); $media->where('user_id', $user->id)->get()->delete_all(); $post = new Post(); $post->where('user_id', $user->id)->get(); foreach ($post as $p) { $post_social = new Post_social(); $post_social->where('post_id', $p->id)->get()->delete_all(); } $post->delete_all(); $review = new Review(); $review->where('user_id', $user->id)->get()->delete_all(); $reviews_notification = new Reviews_notification(); $reviews_notification->where('user_id', $user->id)->get()->delete_all(); $rss_feeds_users = new Rss_feeds_users(); $rss_feeds_users->where('user_id', $user->id)->get()->delete_all(); $social_post = new Social_post(); $social_post->where('user_id', $user->id)->get()->delete_all(); $social_value = new Social_value(); $social_value->where('user_id', $user->id)->get()->delete_all(); $user_additional = new User_additional(); $user_additional->where('user_id', $user->id)->get()->delete_all(); $user_feed = new User_feed(); $user_feed->where('user_id', $user->id)->get()->delete_all(); $user_timezone = new User_timezone(); $user_timezone->where('user_id', $user->id)->get()->delete_all(); $this->addFlash(lang('delete_success'), 'success'); redirect('admin/' . $url); }
public function make() { $params = Input::all(); $id = $params['item-id']; // 決定表作成時はmax_execution_timeの制限を外す set_time_limit(3000); // TODO: ファイル作成する部分。ファイル以外で実現したい //$file_name = 'drh.dat'; $file_name = $id . '.dat'; $fp = fopen('assets/dat/' . $file_name, 'w'); // 酒のレビューを取得。現在はサンプルのレビューを使用。 $reviews = Review::where('item_id', $id)->get(); $last_result = array(); /*----------------------------------------- * 形態素解析, 係受け構文解析 *---------------------------------------*/ foreach ($reviews as $review) { $params = array('type' => 'chunk', 'text' => $review->content); $yahoo_result = YahooApi::fetch($params); if ($yahoo_result === false) { continue; } $last_result = Chunk::getChunks($yahoo_result, $review->content, $review, $last_result, $review->is_bought); } /*----------------------------------------- * 類義語検索 *---------------------------------------*/ foreach ($last_result as $key => $value) { $s = explode(',', $value['info']); // 名詞が形容詞にかかっている場合 if (preg_match('/.*?(名詞)/u', $s[2]) && preg_match('/.*?(形容|動詞)/u', $s[6])) { $adje = explode('-', $s[6]); // 品詞 $pos = explode('-', $s[5]); // 単語 $_adje = explode('-', $s[2]); // 品詞 $_pos = explode('-', $s[1]); // 単語 for ($i = 0; $i < count($_adje); $i++) { $syno = null; if (preg_match('/.*?(名詞)/u', $_adje[$i]) && count($_adje) > 1) { if ($_adje[0] == '名詞' && $_adje[1] == '助動詞') { $syno = Thesaurus::checkThesaurus($_pos[$i]); } $_ll_result = array(); if ($syno) { $_ll_result['text'] = $syno['text']; $_ll_result['rayer'] = $syno['rayer']; $_ll_result['info'] = $value['info']; $ll_result[trim($syno['text'])][] = $_ll_result; } } } for ($i = 0; $i < count($adje); $i++) { $syno = null; if (preg_match('/^(形容|動詞)/u', $adje[$i], $match)) { // 形容詞が含まれていれば if ($match[0] == '形容') { $syno = Thesaurus::checkThesaurus($pos[$i]); if ($syno && $syno->text == '無い') { for ($j = 0; $j < count($_adje); $j++) { if ($_adje[$j] == '名詞') { $syno = Thesaurus::checkThesaurus($_pos[$i]); } } } } else { if ($match[0] == '動詞') { $_syno = Thesaurus::checkThesaurus($pos[$i]); if ($_syno && isset($pos[1])) { if (in_array($pos[0] . $pos[1], explode(',', $_syno->synonym))) { $syno = $_syno; } } } } if (!isset($syno)) { break; } $_ll_result = array(); // もし同じような形容詞があれば1つにまとめていく if ($syno) { $_ll_result['text'] = $syno['text']; $_ll_result['rayer'] = $syno['rayer']; $_ll_result['info'] = $value['info']; $ll_result[trim($syno['text'])][] = $_ll_result; } } } // for ($i = 0; $i < count($adje); $i++) { // if (preg_match('/.*?(形容)/u', $adje[$i], $match)) { // 形容詞が含まれていれば // $syno = Thesaurus::checkThesaurus($pos[$i]); // $_ll_result = array(); // // もし同じような形容詞があれば1つにまとめていく // if ($syno) { // $_ll_result['text'] = $syno['text']; // $_ll_result['rayer'] = $syno['rayer']; // $_ll_result['info'] = $value['info']; // $ll_result[trim($syno['text'])][] = $_ll_result; // } // } // } } else { if (preg_match('/.*?(副詞)/u', $s[2]) && preg_match('/.*?(名詞)/u', $s[6])) { $adje = explode('-', $s[6]); // 品詞 $pos = explode('-', $s[5]); // 単語 $_adje = explode('-', $s[2]); // 品詞 $_pos = explode('-', $s[1]); // 単語 for ($i = 0; $i < count($adje); $i++) { $syno = null; if (preg_match('/.*?(名詞)/u', $adje[$i])) { $syno = Thesaurus::checkThesaurus($pos[$i]); $_ll_result = array(); if ($syno) { $_ll_result['text'] = $syno['text']; $_ll_result['rayer'] = $syno['rayer']; $_ll_result['info'] = $value['info']; $ll_result[trim($syno['text'])][] = $_ll_result; } } } } } } // foreach ($last_result as $key => $value) { // $s = explode(',', $value['info']); // // 名詞が形容詞にかかっている場合 // if (preg_match('/.*?(名詞)/u', $s[2]) && preg_match('/.*?(形容)/u', $s[6])) { // $adje = explode('-', $s[6]); // 品詞 // $pos = explode('-', $s[5]); // 単語 // $_adje = explode('-', $s[2]); // 品詞 // $_pos = explode('-', $s[1]); // 単語 // for ($i = 0; $i < count($_adje); $i++) { // if (preg_match('/.*?(名詞)/u', $_adje[$i])) { // $syno = Thesaurus::checkThesaurus($_pos[$i]); // $_ll_result = array(); // if ($syno) { // $_ll_result['text'] = $syno['text']; // $_ll_result['rayer'] = $syno['rayer']; // $_ll_result['info'] = $value['info']; // $ll_result[trim($syno['text'])][] = $_ll_result; // } // } // } // for ($i = 0; $i < count($adje); $i++) { // if (preg_match('/.*?(形容)/u', $adje[$i])) { // 形容詞が含まれていれば // $syno = Thesaurus::checkThesaurus($pos[$i]); // $_ll_result = array(); // // もし同じような形容詞があれば1つにまとめていく // if ($syno) { // $_ll_result['text'] = $syno['text']; // $_ll_result['rayer'] = $syno['rayer']; // $_ll_result['info'] = $value['info']; // $ll_result[trim($syno['text'])][] = $_ll_result; // } // } // } // } // } /*----------------------------------------- * 感性ワードの出現率を検索する *---------------------------------------*/ $all_review_count = $this->review_gestion->where('item_id', '=', $id)->count(); // 全レビュー件数 foreach ($ll_result as $key => $value) { $review_count = count($ll_result[$key]); $review_percents[$key] = $review_count / $all_review_count; } // $all_review_count = 0; // 採用したレビュー件数 // foreach ($ll_result as $key => $value) { // $review_counts[$key] = count($ll_result[$key]); // $all_review_count += count($ll_result[$key]); // } // foreach ($review_counts as $key => $review_count) { // $review_percents[$key] = $review_count/$all_review_count; // } // 形を整える foreach ($review_percents as $key => $review_percent) { $review_percents[$key] = substr($review_percent * 100, 0, 4); } /*----------------------------------------- * 決定表を作成する *---------------------------------------*/ $drh = Dr::getDRH($ll_result); /*----------------------------------------- * 属性値を出力する *---------------------------------------*/ //属性値を出力する echo "#ATTRS" . PHP_EOL; fwrite($fp, "#ATTRS" . PHP_EOL); // TODO: ファイルへの書き込み foreach ($drh['attrs'] as $key => $val) { fwrite($fp, $key . " " . $val . PHP_EOL); // TODO: ファイルへ書き込み echo $key . " " . $val . PHP_EOL; } fwrite($fp, PHP_EOL); // TODO: ファイルへ書き込み echo PHP_EOL; /*----------------------------------------- * 付加情報の出力 *---------------------------------------*/ $si = 1; echo "#INFOATTRS" . PHP_EOL; fwrite($fp, "#INFOATTRS" . PHP_EOL); // TODO: ファイルへ書き込み foreach ($drh['drh'] as $key => $val) { echo $si . " " . $key; fwrite($fp, $si . " " . $key); // TODO: ファイルへ書き込み foreach ($val as $k => $v) { if ($k == 'drc') { echo " " . $v; fwrite($fp, " " . $v); // TODO: ファイルへ書き込み } else { if (isset($v['text'])) { echo " " . $k . ":" . implode(',', $v['text']); fwrite($fp, " " . $k . ":" . implode(',', $v['text'])); // TODO: ファイルへ書き込み } else { echo " " . "*"; fwrite($fp, " " . "*"); // TODO: ファイルへ書き込み } } } echo PHP_EOL; fwrite($fp, PHP_EOL); // TODO: ファイルへ書き込み $si++; } echo PHP_EOL; /*----------------------------------------- * 決定表の出力 *---------------------------------------*/ echo "#DRH" . PHP_EOL; fwrite($fp, "#DRH" . PHP_EOL); // TODO: ファイルへ書き込み $si = 1; foreach ($drh['drh'] as $key => $val) { echo $si; fwrite($fp, $si); // TODO: ファイルへ書き込み $_sample = array(); foreach ($val as $k => $v) { if ($k == 'drc') { echo " " . $v; fwrite($fp, " " . $v); // TODO: ファイルへ書き込み $dc[] = $v; } else { echo " " . $k . $v['atr']; fwrite($fp, " " . $k . $v['atr']); // TODO: ファイルへ書き込み $_sample[] = $k . $v['atr']; } } $sample[] = $_sample; echo PHP_EOL; fwrite($fp, PHP_EOL); // TODO: ファイルへ書き込み $si++; } echo PHP_EOL; fwrite($fp, PHP_EOL); // TODO: ファイルへ書き込み /*----------------------------------------- * 決定ルールの算出 *---------------------------------------*/ $MODE = "un_appro"; //un_appro:下近似, up_appro:上近似 Dr::setData($sample, $dc); /*(下/上)近似を求める//--------------------------------*/ $appro = array(); switch ($MODE) { case "un_appro": $appro = Dr::calUNAppro(); break; case "up_appro": break; } /*//下近似を求める-------------------------------------*/ /*----------------------------------------- * 決定行列の作成 *---------------------------------------*/ $d_matrix = Dr::getDecisionMatrix($appro, $sample, $dc); //決定行列からDR算出 //注意:決定行列から算出したDRは矛盾を含む $drs = Dr::calDR($d_matrix); /*----------------------------------------- * CI値の算出の作成 *---------------------------------------*/ $ci = Dr::getCI($drs); /*----------------------------------------- * 結果の出力 *---------------------------------------*/ echo "#DR" . PHP_EOL; fwrite($fp, "#DR" . PHP_EOL); // TODO: ファイルへ書き込み foreach ($ci as $key => $val) { echo "DC:" . $key . PHP_EOL; fwrite($fp, "DC:" . $key . PHP_EOL); // TODO: ファイルへ書き込み foreach ($val as $k => $v) { echo $k . " CI=" . sprintf("%0.4f", $v['ci']) . " " . "[" . implode(',', $v['sample']) . "]" . PHP_EOL; fwrite($fp, $k . " CI=" . sprintf("%0.4f", $v['ci']) . " " . "[" . implode(',', $v['sample']) . "]" . PHP_EOL); // TODO: ファイルへ書き込み } echo PHP_EOL; fwrite($fp, PHP_EOL); // TODO: ファイルへ書き込み } /*----------------------------------------- * 共起頻度・強度算出 *---------------------------------------*/ $cmat = Match::calMatchCoef($drh['drh']); echo "#MATCHING" . PHP_EOL; fwrite($fp, "#MATCHING" . PHP_EOL); // TODO: ファイルへ書き込み foreach ($cmat as $key => $val) { echo "DC:" . $key . PHP_EOL; fwrite($fp, "DC:" . $key . PHP_EOL); // TODO: ファイルへ書き込み foreach ($val as $k => $v) { echo $k . " j:" . sprintf("%0.4f", $v["jaccard"]) . " d:" . sprintf("%0.4f", $v["daice"]) . " c:" . sprintf("%0.4f", $v["cosine"]) . " s:" . sprintf("%0.4f", $v["simpson"]) . " kl:" . sprintf("%0.4f", $v["kl"]) . PHP_EOL; fwrite($fp, $k . " j:" . sprintf("%0.4f", $v["jaccard"]) . " d:" . sprintf("%0.4f", $v["daice"]) . " c:" . sprintf("%0.4f", $v["cosine"]) . " s:" . sprintf("%0.4f", $v["simpson"]) . " kl:" . sprintf("%0.4f", $v["kl"]) . PHP_EOL); } echo PHP_EOL; fwrite($fp, PHP_EOL); // TODO: ファイルへ書き込み } /*----------------------------------------- * 感性ワードの出現率の出力(Relative Frequency) *---------------------------------------*/ fwrite($fp, "#RF" . PHP_EOL); // TODO: ファイルへ書き込み foreach ($review_percents as $key => $review_percent) { fwrite($fp, $key . " " . $review_percent . PHP_EOL); } }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function ReviewCount($id) { return Review::where('fr_fl_id', $id)->count(); }
public static function getAllRecords() { $sources = array(Contractor::where('status', '!=', 'deleted')->get(), Review::where('status', '!=', 'deleted')->get(), Service_request::all(), Lead::where('status', '!=', 'deleted')->get(), User::where('status', '!=', 'deleted')->get()); $sources_array = array(); $names_arr = array(); foreach ($sources as $source) { $source->last()->latest = 'Latest ' . get_class($source->last()); foreach ($source as $record) { All::formatRecord($record); } // $source->first()->classname = get_class($source->first()); array_push($sources_array, json_decode($source, TRUE)); array_push($names_arr, get_class($source->first())); } $big_arr = array_merge($sources_array[0], $sources_array[1], $sources_array[2], $sources_array[3], $sources_array[4]); // return $names_arr; return $big_arr; }
/** * Get reviews for rendering reviews. * * @return array */ public function getReviews($itemId, $reviewItemId, $customerId = NULL) { global $data; global $settings; $reviewItems = Review::where('review_item_id', '=', $reviewItemId); if ($itemId == NULL) { $reviewItems->whereNull('item_id'); } else { $reviewItems->where('item_id', '=', $itemId); } if ($customerId != NULL) { $reviewItems->where('customer_id', '=', $customerId); } $reviews = $reviewItems->whereNull('deleted_at')->get()->toArray(); return $reviews; }
public function getShow($id) { $user = $this->user->findOrFail($id); // $userid = Sentry::getUser()->id; // var_dump($userid); die(); $userid = User::findOrFail($id)->id; $useremail = User::findOrFail($id)->email; // var_dump($userid); die(); $galleries = Gallery::where('user_id', '=', $userid)->get(); $credentials = Credential::where('user_id', '=', $userid)->get(); $reviews = Review::where('to', '=', $useremail)->get(); // $services = // $user = sentry::getUser(); // var_dump($user); die('here'); // $user = Sentry::findUserById($id); // if(All::checkViewRight($user)): // return All::checkViewRight($user); // endif; // return $galleries; die(); // return $reviews; die('jere'); return View::make('users.show', compact('user', 'galleries', 'reviews')); // return View::make('users.show', compact('user')); }
/** * Fetches user reviews from database. * * @param string $name * @return Paginator */ public function fetchReviews($id) { return \Review::where('user_id', $id)->paginate(10); }
public function postUpdate() { $item_id = Input::get('item_id'); // TODO: とりあえずすべてのレビューを消去してすべて更新する方法採用。後々訂正 // 更新するアイテムの取得 $item = Item::find($item_id); $item_code = $item->item_code; // 一旦関係のあるレビュー全削除 Review::where('item_id', '=', $item_id)->delete(); // 再度取得 Review::getReviews($item_code, $item_id); }
public function getViewCount($id) { return Review::where('fr_usr_id', $id)->sum('fr_views'); }