欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

電影推薦系統(tǒng)代碼java 簡單的電影推薦系統(tǒng)

求JAVA視頻播放器代碼

import java.awt.BorderLayout;

創(chuàng)新互聯(lián)主營黃州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),黃州h5微信小程序定制開發(fā)搭建,黃州網(wǎng)站營銷推廣歡迎黃州等地區(qū)企業(yè)咨詢

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;

// 標(biāo)示是否是第一次打開播放器

boolean first = true;

// 標(biāo)示是否需要循環(huán)

boolean loop = false;

// 文件當(dāng)前目錄

String currentDirectory;

// 構(gòu)造方法

public JMFMediaPlayer(String title) {

super(title);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

// 用戶點擊窗口系統(tǒng)菜單的關(guān)閉按鈕

// 調(diào)用dispose以執(zhí)行windowClosed

dispose();

}

public void windowClosed(WindowEvent e){

if (player != null){

// 關(guān)閉JMF播放器對象

player.close();

}

System.exit(0);

}

});

// 創(chuàng)建播放器的菜單

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

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

openMemuItem.addActionListener(this);

fileMenu.add(openMemuItem);

// 添加一個分割條

fileMenu.addSeparator();

// 創(chuàng)建一個復(fù)選框菜單項

JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循環(huán)", 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 {

// 設(shè)置界面的外觀,為系統(tǒng)外觀

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

SwingUtilities.updateComponentTreeUI(this);

} catch (Exception e) {

e.printStackTrace();

}

this.setVisible(true);

}

/**

* 實現(xiàn)了ActionListener接口,處理組件的活動事件

*/

public void actionPerformed(ActionEvent e) {

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

// 調(diào)用dispose以便執(zhí)行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){

// 關(guān)閉已經(jīng)存在JMF播放器對象

player.close();

}

try {

// 創(chuàng)建一個打開選擇文件的播放器

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("無法創(chuàng)建播放器.");

return;

}

first = false;

this.setTitle(fileDialog.getFile());

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

player.addControllerListener(this);

// 預(yù)讀文件內(nèi)容

player.prefetch();

}

/**

* 實現(xiàn)ControllerListener接口的方法,處理播放器的控制事件

*/

public void controllerUpdate(ControllerEvent e) {

// 調(diào)用player.close()時ControllerClosedEvent事件出現(xiàn)。

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

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

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) {

// 如果允許循環(huán),則重新開始播放

player.setMediaTime(new Time(0));

player.start();

}

return;

}

// 如果是播放器預(yù)讀事件

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();

}

}

// 處理“循環(huán)”復(fù)選框菜單項的點擊事件

public void itemStateChanged(ItemEvent e) {

loop = !loop;

}

public static void main(String[] args){

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

}

}

試試吧,我這里運行正常

電影推薦系統(tǒng)是用java寫還是paython寫好一點?

我覺得用java好一些。

java是一門面向?qū)ο蟮木幊陶Z言。java語言具有功能強大和簡單易用兩個特征,具有簡單性、面向?qū)ο蟆⒎植际降忍攸c,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

Python目前的應(yīng)用領(lǐng)域比較廣泛,目前Python的主要方向分為后端開發(fā)、數(shù)據(jù)分析、網(wǎng)絡(luò)爬蟲、機器學(xué)習(xí)等。

學(xué)IT的,寫了一個電影推薦系統(tǒng),但是為什么評分預(yù)測值大于五?

全文以“預(yù)測電影評分”例子展開

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

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

=======================================二、基于內(nèi)容的推薦=======================================

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

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

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

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

對每個用戶都訓(xùn)練一個參數(shù)theta_j,優(yōu)化模型如下:

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

=======================================三、協(xié)同過濾=======================================

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

仍然可以使用線性回歸,為訓(xùn)練每個x(i),需要評分矩陣的第i行數(shù)據(jù){ (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.

對應(yīng)的優(yōu)化:

協(xié)同過濾:交替優(yōu)化theta與x

=========================================四、協(xié)同過濾算法=======================================

優(yōu)化:

優(yōu)化:注意去掉了theta和x的添加項

=========================================五、實現(xiàn)細節(jié)補充=======================================

實現(xiàn)細節(jié):

如果有user沒有對任何電影評分或者所有評分的電影都是0分,那么所學(xué)習(xí)到的參數(shù)是零向量,

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

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

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

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

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

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

這周還會再更一篇關(guān)于此節(jié)課的算法實現(xiàn),會對上述部分問題做出回答。

本文名稱:電影推薦系統(tǒng)代碼java 簡單的電影推薦系統(tǒng)
網(wǎng)址分享:http://chinadenli.net/article26/doojicg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google品牌網(wǎng)站設(shè)計標(biāo)簽優(yōu)化外貿(mào)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站網(wǎng)站收錄

廣告

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

成都網(wǎng)站建設(shè)公司