免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

電影推薦系統代碼java 簡單的電影推薦系統

求JAVA視頻播放器代碼

import java.awt.BorderLayout;

創新互聯主營黃州網站建設的網絡公司,主營網站建設方案,成都App定制開發,黃州h5微信小程序定制開發搭建,黃州網站營銷推廣歡迎黃州等地區企業咨詢

import java.awt.Component;

import java.awt.FileDialog;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.media.ControllerClosedEvent;

import javax.media.ControllerEvent;

import javax.media.ControllerListener;

import javax.media.EndOfMediaEvent;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.NoPlayerException;

import javax.media.Player;

import javax.media.PrefetchCompleteEvent;

import javax.media.RealizeCompleteEvent;

import javax.media.Time;

import javax.swing.JCheckBoxMenuItem;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

public class JMFMediaPlayer extends JFrame implements ActionListener,

ControllerListener, ItemListener {

// JMF的播放器

Player player;

// 播放器的視頻組件和控制組件

Component vedioComponent;

Component controlComponent;

// 標示是否是第一次打開播放器

boolean first = true;

// 標示是否需要循環

boolean loop = false;

// 文件當前目錄

String currentDirectory;

// 構造方法

public JMFMediaPlayer(String title) {

super(title);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

// 用戶點擊窗口系統菜單的關閉按鈕

// 調用dispose以執行windowClosed

dispose();

}

public void windowClosed(WindowEvent e){

if (player != null){

// 關閉JMF播放器對象

player.close();

}

System.exit(0);

}

});

// 創建播放器的菜單

JMenu fileMenu = new JMenu("文件");

JMenuItem openMemuItem = new JMenuItem("打開");

openMemuItem.addActionListener(this);

fileMenu.add(openMemuItem);

// 添加一個分割條

fileMenu.addSeparator();

// 創建一個復選框菜單項

JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循環", false);

loopMenuItem.addItemListener(this);

fileMenu.add(loopMenuItem);

fileMenu.addSeparator();

JMenuItem exitMemuItem = new JMenuItem("退出");

exitMemuItem.addActionListener(this);

fileMenu.add(exitMemuItem);

JMenuBar menuBar = new JMenuBar();

menuBar.add(fileMenu);

this.setJMenuBar(menuBar);

this.setSize(200, 200);

try {

// 設置界面的外觀,為系統外觀

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

SwingUtilities.updateComponentTreeUI(this);

} catch (Exception e) {

e.printStackTrace();

}

this.setVisible(true);

}

/**

* 實現了ActionListener接口,處理組件的活動事件

*/

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("退出")) {

// 調用dispose以便執行windowClosed

dispose();

return;

}

FileDialog fileDialog = new FileDialog(this, "打開媒體文件", FileDialog.LOAD);

fileDialog.setDirectory(currentDirectory);

fileDialog.setVisible(true);

// 如果用戶放棄選擇文件,則返回

if (fileDialog.getFile() == null){

return;

}

currentDirectory = fileDialog.getDirectory();

if (player != null){

// 關閉已經存在JMF播放器對象

player.close();

}

try {

// 創建一個打開選擇文件的播放器

player = Manager.createPlayer(new MediaLocator("file:"

+ fileDialog.getDirectory() + fileDialog.getFile()));

} catch (java.io.IOException e2) {

System.out.println(e2);

return;

} catch (NoPlayerException e2) {

System.out.println("不能找到播放器.");

return;

}

if (player == null) {

System.out.println("無法創建播放器.");

return;

}

first = false;

this.setTitle(fileDialog.getFile());

// 播放器的控制事件處理

player.addControllerListener(this);

// 預讀文件內容

player.prefetch();

}

/**

* 實現ControllerListener接口的方法,處理播放器的控制事件

*/

public void controllerUpdate(ControllerEvent e) {

// 調用player.close()時ControllerClosedEvent事件出現。

// 如果存在視覺部件,則該部件應該拆除(為一致起見,

// 我們對控制面板部件也執行同樣的操作)

if (e instanceof ControllerClosedEvent) {

if (vedioComponent != null) {

this.getContentPane().remove(vedioComponent);

this.vedioComponent = null;

}

if (controlComponent != null) {

this.getContentPane().remove(controlComponent);

this.controlComponent = null;

}

return;

}

// 如果是媒體文件到達尾部事件

if (e instanceof EndOfMediaEvent) {

if (loop) {

// 如果允許循環,則重新開始播放

player.setMediaTime(new Time(0));

player.start();

}

return;

}

// 如果是播放器預讀事件

if (e instanceof PrefetchCompleteEvent) {

// 啟動播放器

player.start();

return;

}

// 如果是文件打開完全事件,則顯示視頻組件和控制器組件

if (e instanceof RealizeCompleteEvent) {

vedioComponent = player.getVisualComponent();

if (vedioComponent != null){

this.getContentPane().add(vedioComponent);

}

controlComponent = player.getControlPanelComponent();

if (controlComponent != null){

this.getContentPane().add(controlComponent, BorderLayout.SOUTH);

}

this.pack();

}

}

// 處理“循環”復選框菜單項的點擊事件

public void itemStateChanged(ItemEvent e) {

loop = !loop;

}

public static void main(String[] args){

new JMFMediaPlayer("JMF媒體播放器");

}

}

試試吧,我這里運行正常

電影推薦系統是用java寫還是paython寫好一點?

我覺得用java好一些。

java是一門面向對象的編程語言。java語言具有功能強大和簡單易用兩個特征,具有簡單性、面向對象、分布式等特點,可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

Python目前的應用領域比較廣泛,目前Python的主要方向分為后端開發、數據分析、網絡爬蟲、機器學習等。

學IT的,寫了一個電影推薦系統,但是為什么評分預測值大于五?

全文以“預測電影評分”例子展開

r(i,j)=0則表明user_j沒有對movie_i 沒有評分,

推薦系統要做的就是通過預測user_j對這些movie {i|r(i,j)=0}的評分來給user_j 推薦其可能會喜歡的電影預測評分較高的movie

=======================================二、基于內容的推薦=======================================

對每個movie_i引入特征x(i)=(x1, x2),這種特征可能表明user對movie類型的偏好:浪漫or動作等

對于每個user引入一個參數theta,然后對評分矩陣的每列(對應一個user)做線性回歸,數據是{ (x(i), y(i,j)) |r(i,j)=1,for some j all i}

像機器學習一樣,x(i)添加個1變量x(i)=(1, x1, x2)

那么對于未評分的movie_t,我們可以使用線性回歸訓練的參數theta與對應特征x(t)做內積來得到其預測評分

對每個用戶都訓練一個參數theta_j,優化模型如下:

優化算法:注意正則項是不約束x(i)=(1, x1, x2)中1對應的參數theta的第一項theta0,所以k=0與k=1,2分別對待

=======================================三、協同過濾=======================================

現在換個角度:如果知道theta for all user j,如何來預測x(i) = (x1, x2) all i

仍然可以使用線性回歸,為訓練每個x(i),需要評分矩陣的第i行數據{ (x(i), y(i,j)) |r(i,j)=1,for some i all j}

theta_j = (0, theta1, theta2) ;theta1=5說明user_j喜歡romance類movie, theta2=5說明user_j喜歡action類movie,只能有一個等于5哦,

我覺得也可以是:theta_j = (0, 4, 1) ;喜歡romance 4 action 1.

對應的優化:

協同過濾:交替優化theta與x

=========================================四、協同過濾算法=======================================

優化:

優化:注意去掉了theta和x的添加項

=========================================五、實現細節補充=======================================

實現細節:

如果有user沒有對任何電影評分或者所有評分的電影都是0分,那么所學習到的參數是零向量,

則預測都是0值,這是不合理的。通過 將評分矩陣減去其行均值再進行線性回歸來“避免”這種情況

=========================================六、一點思考==========================================

協同過濾那塊,同時優化theta、x,這樣得到的theta、x還有特定的意義比如:x是否還表征對影視類型的喜愛與否沒有?

回歸中,在x數據上不添加1-feature是不是因為后來引入的平均值化;如果不是,那會對結果有什么影響?

用x-feature來表征一個movie,x-feature的各分量的可解釋性;應該會有一部分user應為演員的緣故有一些"偏愛"。

這里,講的"基于內容的推薦"與"協同過濾"跟以前對這兩個詞的認識/所指內容不同,查清楚、搞明白。

這周還會再更一篇關于此節課的算法實現,會對上述部分問題做出回答。

本文名稱:電影推薦系統代碼java 簡單的電影推薦系統
網址分享:http://m.newbst.com/article26/doojicg.html

成都網站建設公司_創新互聯,為您提供Google品牌網站設計標簽優化、外貿網站建設、響應式網站、網站收錄

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司