paint-brush
ምጥዋይ ኣቋርጽ፣ ምህናጽ ጀምር: ናይ ገዛእ ርእስኻ AI Movie Recommender ፍጠር@superlinked
ሓድሽ ታሪኽ

ምጥዋይ ኣቋርጽ፣ ምህናጽ ጀምር: ናይ ገዛእ ርእስኻ AI Movie Recommender ፍጠር

Superlinked11m2025/03/06
Read on Terminal Reader

ኣዝዩ ነዊሕ፤ ንምንባብ

ከመይ ጌርካ ንቐጻሊ እትፈትዎ ፊልም ብትኽክል ዝትንበ ብሕታዊ፡ ብAI ዝምራሕ ስርዓተ ለበዋ ትሃንጽ ተማሃር። ኣብ’ዚ ትምህርቲ’ዚ፡ ብቬክተር ዳታቤዝ ተጠቒምካ ናይ ፊልም ለበዋ ስርዓት ምፍጣር መስርሕ ክንመርሓኩም ኢና። ዘመናዊ ናይ AI ምኽሪ ሞተር ከመይ ከም ዝሰርሑ ክትመሃርን ብ Superlinked ናይ ገዛእ ርእስኻ ስርዓት ናይ ምህናጽ ናይ ኢድ ተመኩሮ ክትረክብን ኢኻ።
featured image - ምጥዋይ ኣቋርጽ፣ ምህናጽ ጀምር: ናይ ገዛእ ርእስኻ AI Movie Recommender ፍጠር
Superlinked HackerNoon profile picture
0-item
1-item

“ቢ-ፊልም ዳሚት ደልየ ኢለ!”

መወዳእታ መወዳእታ ዘይብሉ ምጥዋይ (እንታይ ክትከታተል ከም ዘለካ ዝግበር ክትዓትን...)

መወዳእታ ዘይብሉ ኣብ ኔትፍሊክስ ምዝዋር ደኺምካ፡ ቀጺልካ እንታይ ክትከታተል ከም ዘለካ ርግጸኛ ዘይኮንካ? ንዝቕጽል እትፈትዎ ፊልም ብትኽክል ዝትንበ ናይ ገዛእ ርእስኻ ብሕታዊን ብAI ዝምራሕን ስርዓተ ምኽሪ ክትሃንጽ እንተትኽእልከ?


ኣብዚ ትምህርቲ ፡ ቬክተር ዳታቤዛት (VectorDBs) ተጠቒምካ ናይ ፊልም ለበዋ ስርዓት ምፍጣር መስርሕ ክንመርሓኩም ኢና። ዘመናዊ ናይ AI ምኽሪ ሞተር ከመይ ከም ዝሰርሑ ክትመሃርን ብ Superlinked ናይ ገዛእ ርእስኻ ስርዓት ናይ ምህናጽ ናይ ኢድ ተመኩሮ ክትረክብን ኢኻ።


(ትኽ ኢልካ ናብቲ ኮድ ክትዘልል ትደሊ? ኣብ GitHub ሪፖና ኣብዚ ርአ . ንናይ ገዛእ ርእስኻ ኣጠቓቕማ ኬዝ ናይ ለበዋ ስርዓታት ክትፍትን ድሉው ዲኻ? ኣብዚ ዲሞ ውሰድ ።)

ምኽሪ ንረክብ!

ነዚ ደፍተር ኣብ ምሉእ ጽሑፍ ክንከታተሎ ኢና። ብተወሳኺ ኮላብ ተጠቒምካ ነቲ ኮድ ትኽ ኢልካ ካብ መርበብ ሓበሬታኻ ከተካይዶ ትኽእል ኢኻ።


ናይ ኔትፍሊክስ ለበዋ ኣልጎሪዝም ኣገዳሲ ትሕዝቶ ኣብ ምሕባር ጽቡቕ ስራሕ ይሰርሕ - ኣብ ግምት ብምእታው ልዑል መጠን ኣማራጺታት (~16k ፊልምታትን መደባት ቲቪን ኣብ 2023) ከምኡ'ውን ክሳብ ክንደይ ቅልጡፍ ምርኢታት ንተጠቀምቲ ሓሳብ ከቕርብ ከም ዘለዎ። ኔትፍሊክስ ብኸመይ ይገብሮ? ብሓደ ቃል ትርጉማዊ ምድላይ .


ትርጉማዊ ምድላይ ነቲ ብድሕሪ ሕቶታት ተጠቃሚን መግለጺታት ፊልም/ቲቪ መደብን ዘሎ ትርጉምን ዓውድን (ክልቲኡ ባህርያትን ቅዲ ሃልኪን) ይርዳእ፣ ስለዚ ድማ ካብቲ ባህላዊ ኣብ ቁልፊ ቃላት ዝተመርኮሰ ኣገባባት ዝሓሸ ብሕታዊነት ኣብ ሕቶታቱን ለበዋታቱን ክህብ ይኽእል።


ትርጉማዊ ምድላይ ግን ዝተወሰኑ ብድሆታት የስዕብ - ካብዚኦም ብቐዳምነት፡ 1) ቅኑዕ ውጽኢት ምድላይ ምርግጋጽ፡ 2) ምትርጓም፡ ከምኡ’ውን 3) ምዕባይ - ዝኾነ ዕዉት ናይ ትሕዝቶ ለበዋ ስትራተጂ ክፈትሖም ዘለዎ ብድሆታት። ናይ Superlinked ቤተ-መጻሕፍቲ ብምጥቃም ነዞም ጸገማት ክትሰግሮም ትኽእል ኢኻ።


ኣብዚ ጽሑፍ፡ ከመይ ጌርካ ነቲ Superlinked library ተጠቒምካ ናይ ገዛእ ርእስኻ ትርጉማዊ ምድላይ ከተቕውምን ኣብ ምርጫታትካ ተመርኲስካ ዝርዝር ኣገደስቲ ፊልምታት ከተፍሪን ከም እትኽእል ከነርእየካ ኢና።

ትርጉማዊ ምድላይ - ብድሆታት

ትርጉማዊ ምድላይ ኣብ ቬክተር ምድላይ ብዙሕ ዋጋ ዘመሓላልፍ ኮይኑ ግን ንደቨሎፐራት ሰለስተ ኣገደስቲ ናይ ቬክተር ምትእትታው ብድሆታት የስዕብ፤

  • ጽሬትን ተዛማድነትን : ምትእትታዋትካ ትርጉማዊ ትርጉም ዳታኻ ብትኽክል ከም ዝሕዙ ምርግጋጽ፡ ናይ ምትእትታው ሜላታት፡ ስልጠና ዳታን ሃይፐርፓራሜተራትን ብጥንቃቐ ምምራጽ የድሊ። ድኹም ጽሬት ዘለዎ ምትእትታው ቅኑዕ ዘይኮነ ውጽኢት ምድላይን ዘይምልከቶ ለበዋታትን ከስዕብ ይኽእል።


  • ትርጉም : ልዑል-መዳይ ቬክተር ቦታታት ብቐሊሉ ንምርዳእ ኣዝዮም ዝተሓላለኹ እዮም። ኣብ ውሽጦም ዝተቐመጠ ዝምድናታትን ተመሳሳልነትን ርድኢት ንምርካብ፡ ሳይንቲስት ዳታ፡ ንዕኡ ንምስኣልን ንምትንታንን ዝሕግዙ ሜላታት ከማዕብሉ ኣለዎም።


  • ስኬላቢሊቲ : ምምሕዳርን ምምስራሕን ልዑል-ዳይመንሽናል ምትእትታው ብፍላይ ኣብ ዓበይቲ ዳታሴታት ንጸጋታት ምሕሳብ ክጽዕንን ላቴንሲ ክውስኽን ይኽእል። ኣብ ከባቢታት ምፍራይ ምዕባይን ኣብ ሓቀኛ ግዜ ኣፈፃፅማን ንምርግጋፅ ንኢንዴክስ፣ ምውሳድን ተመሳሳልነትን ስሉጥ ሜላታት ኣገደስቲ እዮም።


እቲ ሱፐርሊንክድ ዝበሃል ቤተ-መጻሕፍቲ ነዞም ብድሆታት ክትፈትሖም የኽእለካ። ኣብ ታሕቲ፡ ብዛዕባ ሓደ ዝተዋህበ ፊልም ካብ ዘለና ሓበሬታ ጀሚርና፡ ብዛዕባ ሓደ ዝተዋህበ ፊልም ዘለና ሓበሬታ ጀሚርና፡ ነዚ ሓበሬታ ከም ማልቲሞዳል ቬክተር ክንሰፍር፡ ንኹለን ፊልምታትና ክድለ ዝኽእል ቬክተር ኢንዴክስ ክንሃንጽ ኢና፡ ድሕሪኡ ድማ ውጽኢትና ንምትዕርራይን ኣብ ጽቡቕ ናይ ፊልም ለበዋታት ንምብጻሕን ናይ ሕቶ ሚዛናት ክንሰርሕ ኢና። ናብኡ ንእቶ።

ቅልጡፍን ዘተኣማምንን ናይ ምድላይ ተመኩሮ ምስ ሱፐርሊንክድ ምፍጣር

ኣብ ታሕቲ፡ ነዞም ዝስዕቡ ባእታታት ናይቲ ሱፐርሊንክድ ቤተ-መጻሕፍቲ ተጠቒምካ ኣብ ዳታሴት ፊልም ኔትፍሊክስ ትርጉማዊ ምድላይ ክትገብር ኢኻ፤

  • ናይ ቀረባ ግዜ ቦታ - ፍረሽነት (ባጤራን ተዛማድነትን) ዳታኻ ንምርዳእ፣ ሓደስቲ ፊልምታት ንምልላይ።
  • TextSimilarity space - ብዛዕባ እታ ፊልም ዘለካ ዝተፈላለዩ ቁንጣሮ ሜታዳታታት ከም መግለጺ፡ ኣርእስትን ቅዲን ንምትርጓም።
  • ናይ ሕቶ ግዜ ሚዛናት - ነቲ ሕቶ ከተካይዶ ከለኻ ኣብ ዳታኻ ዝያዳ ኣገዳሲ ዝኾነ ክትመርጽ የኽእለካ፣ በዚ ድማ ንብምሉኡ ዳታሴት ዳግማይ ምትእትታው፣ ድሕረ-መስርሕ ምግባር፣ ወይ ብሕታዊ ዳግመ-ምምራሕ ሞዴል (ማለት ምጉዳል ምድንጓይ) ከየድለየካ ምምሕያሽ ክትገብር የኽእለካ።

እቲ ናይ ኔትፍሊክስ ዳታሴት፡ ከምኡ’ውን እንታይ ክንገብሮ ኢና።

ፊልምታት ብዓወት ምምዕዳው መብዛሕትኡ ኣጸጋሚ እዩ ምኽንያቱ ብዙሓት ኣማራጺታት ስለዘለዉ (>9000 ኣርእስታት ኣብ 2023)፣ ተጠቀምቲ ድማ ብጠለብ ለበዋታት ይደልዩ፣ ብቕጽበት። ንሕና ክንከታተሎ እንደሊ ነገር ንምርካብ ብዳታ ዝምራሕ ኣገባብ ንውሰድ። ኣብ ዳታሴት ፊልምታትና፡ ንፈልጦም፤

  • መግለፂ
  • ወግዒ
  • ርእሲ
  • ናይ ምፍናው_ዓመት


ነዞም እታዎታት ክንሰፍር ንኽእል ኢና፣ ኣብ ልዕሊ ምትእትታዋትና ድማ ቬክተር ኢንዴክስ ኣዋሃሂድና ብትርጉም ክንደልዮ እንኽእል ቦታ ክንፈጥር ንኽእል።


ናትና ኢንዴክስ ቬክተር ስፔስ ምስ ረኸብና፡ ንሕና፤

  • መጀመርታ፡ ብሓሳብ ዝተጻረየ ፊልምታት ዳህስስ (ልባዊ ፍቕራዊ ኮሜዲ)
  • ቀጺልካ፡ ነቲ ውጽኢት ምትዕርራይ፡ ኣብ ዝተወሰኑ ናይ ምእታው ዓውድታት ንዝግበር ምትእስሳር ዝያዳ ኣገዳስነት ምሃብ (ማለት፡ ምምዛን)
  • ድሕሪኡ፡ ንነፍሲ ወከፍ ዝተፈላለየ ናይ ምድላይ ቃላት ሒዝካ ኣብ መግለጺ፡ ቅዲን ኣርእስትን ድለ
  • ከምኡ’ውን፡ ቅርበት ዘለዋ ግን ከኣ ልክዕ ዘይትሰማማዕ ፊልም ድሕሪ ምርካብካ፡ ነታ ፊልም ከም መወከሲ ተጠቒምካ’ውን ኣብ ዙርያኻ ድለ

ምትካልን ምድላው ዳታሴትን

ቀዳማይ ስጉምትኻ ነቲ ቤተ-መጻሕፍቲ ምትካልን ዘድልዩ ክፍልታት ምእታውን እዩ።


(መተሓሳሰቢ፡ ኣብ ታሕቲ፡ ነዚ ኣብ google colab ትሰርሕ እንተኾንካ alt.renderers.enable(“mimetype”) ናብ alt.renderers.enable('colab') ቀይሮ። ኣብ github ትፍጽሞ እንተኾንካ “mimetype” ምሓዝ።)


 %pip install superlinked==5.3.0 from datetime import timedelta, datetime import altair as alt import os import pandas as pd from superlinked.evaluation.charts.recency_plotter import RecencyPlotter from superlinked.framework.common.dag.context import CONTEXT_COMMON, CONTEXT_COMMON_NOW from superlinked.framework.common.dag.period_time import PeriodTime from superlinked.framework.common.schema.schema import schema from superlinked.framework.common.schema.schema_object import String, Timestamp from superlinked.framework.common.schema.id_schema_object import IdField from superlinked.framework.common.parser.dataframe_parser import DataFrameParser from superlinked.framework.dsl.executor.in_memory.in_memory_executor import ( InMemoryExecutor, InMemoryApp, ) from superlinked.framework.dsl.index.index import Index from superlinked.framework.dsl.query.param import Param from superlinked.framework.dsl.query.query import Query from superlinked.framework.dsl.query.result import Result from superlinked.framework.dsl.source.in_memory_source import InMemorySource from superlinked.framework.dsl.space.text_similarity_space import TextSimilaritySpace from superlinked.framework.dsl.space.recency_space import RecencySpace alt.renderers.enable("mimetype") # NOTE: to render altair plots in colab, change 'mimetype' to 'colab' alt.data_transformers.disable_max_rows() pd.set_option("display.max_colwidth", 190)


ብተወሳኺ ነቲ ዳታሴት ምድላው የድልየና - ቀወምቲ ግዜ ምግላጽ፣ ናይቲ ዳታ URL ቦታ ምቕማጥ፣ መዝገበ ቃላት መኽዘን ዳታ ምፍጣር፣ ነቲ CSV ናብ pandas DataFrame ምንባብ፣ ነቲ ዳታፍሬምን ዳታን ብግቡእ ክድለየሉ ምጽራይ፣ ከምኡ’ውን ቅልጡፍ ምርግጋጽን ሓፈሻዊ ትዕዝብትን ምግባር። (ንዝርዝር ሓበሬታ ኣብ ዋህዮታት 3ን 4 ን ርአ።)


ሕጂ እቲ ዳታሴት ተዳልዩ ስለዘሎ፡ Superlinked library ተጠቒምካ ንምውጻእካ ክትመሓየሽ ትኽእል ኢኻ።

ንቬክተር ምድላይ ዝኸውን ኢንዴክስ ምህናጽ

ቤተ-መጻሕፍቲ ሱፐርሊንክድ ሓደ ስብስብ ቀንዲ ህንጻዊ ብሎኮታት ዝሓዘ ኮይኑ፡ ንሕና ድማ ኢንዴክስ ንምህናጽን ንምውሳድን ንምምሕዳርን እንጥቀመሉ እዩ። ብዛዕባ እዞም ህንጻዊ ብሎኮታት ብሰፊሑ ኣብዚ ከተንብቡ ትኽእሉ ኢኹም ።


መጀመርታ ብዛዕባ ዳታኻ ነቲ ስርዓት ንምንጋር Schema ናትካ ክትገልጽ ኣለካ።

 # accommodate our inputs in a typed schema @schema class MovieSchema: description: String title: String release_timestamp: Timestamp genres: String id: IdField movie = MovieSchema()


ቀጺልካ፡ ኣብ እዋን ምትእትታው ነፍሲ ወከፍ ክፋል ናይቲ ዳታ ከመይ ጌርካ ክትሕዞ ከም እትደሊ ንምግላጽ Spaces ትጥቀም። ኣየኖት Spaces ከም ዝጥቀሙ ኣብ ዓይነት ዳታኻ ይምርኮስ። ነፍሲ ወከፍ Space ዝለዓለ ጽሬት ውጽኢት ምውሳድ ንኽምለስ ነቲ ዳታ ንምስፋር ዝተመቻቸወ እዩ።


ኣብ ትርጉማት ህዋ፡ ኣብ ዳታና ዘሎ ትርጉማዊ ዝምድናታት ንምንጽብራቕ፡ እቶም እታዎታት ብኸመይ ክስረጹ ከም ዘለዎም ንገልጽ።


 # textual fields are embedded using a sentence-transformers model description_space = TextSimilaritySpace( text=movie.description, model="sentence-transformers/paraphrase-MiniLM-L3-v2" ) title_space = TextSimilaritySpace( text=movie.title, model="sentence-transformers/paraphrase-MiniLM-L3-v2" ) genre_space = TextSimilaritySpace( text=movie.genres, model="sentence-transformers/paraphrase-MiniLM-L3-v2" ) # release date are encoded using our recency space # periodtimes aim to reflect notable breaks in our scores recency_space = RecencySpace( timestamp=movie.release_timestamp, period_time_list=[ PeriodTime(timedelta(days=4 * YEAR_IN_DAYS)), PeriodTime(timedelta(days=10 * YEAR_IN_DAYS)), PeriodTime(timedelta(days=40 * YEAR_IN_DAYS)), ], negative_filter=-0.25, ) movie_index = Index(spaces=[description_space, title_space, genre_space, recency_space])


ቦታታትካ ምስ ኣዳለኻን ኢንዴክስካ ምስ ፈጠርካን፡ ነቲ ምንጪን ፈጻምን ክፋላት ናይቲ ቤተ-መጻሕፍቲ ተጠቒምካ ንሕቶታትካ ትሰርዖ። ኣብ ደፍተር ካብ ዋህዮታት 10-13 ርአ ።


ሕጂ እቶም ሕቶታት ተዳልዮም ስለዘለዉ፡ ናብ ምጉያይ ሕቶታትን ክብደት ብምትዕርራይ ምምላስ ምምሕያሽን ንሰግር።

ምርዳእ ሪሰንሲ፡ ከምኡ’ውን ከመይ ጌርካ ኣብ ሱፐርሊንክድ ትጥቀመሉ

እቲ ናይ ቀረባ እዋን ቦታ ካብ ዳታሴትካ ዝኣረጉ ወይ ሓደስቲ ምውጻእ ብምምራጽ ብምስሓብ ውጽኢት ሕቶኻ ክትቅይር የኽእለካ። ን4፣ 10ን 40ን ዓመታት ከም ናይ ፒሪድ ግዜና ንጥቀመሉ፣ ምእንቲ ዝያዳ ኣርእስታት ዘለዎም ዓመታት ዝያዳ ትኹረት ክንህብ - ዋህዮ 5 ርአ)።


ኣብ 4፣ 10ን 40ን ዓመት ኣብ ነጥቢ ዘሎ ዕረፍቲ ኣስተብህል። ልዕሊ 40 ዓመት ዝዕድሚኦም ኣርእስታት negative_filter ነጥቢ ይረኽቡ።

ናይ ቀረባ ግዜ ነጥብታት ብፔሪድ

ዝተፈላለዩ ናይ ሕቶ ግዜ ሚዛናት ብምጥቃም ውጽኢት ምድላይ ምግምጋምን ምምሕያሽን።

ውጽኢትና ኣብ ደፍተር ንምቕራብ ቅልጡፍ util function ንገልጽ።


 def present_result( result: Result, cols_to_keep: list[str] = ["description", "title", "genres", "release_year", "id"], ) -> pd.DataFrame: # parse result to dataframe df: pd.DataFrame = result.to_pandas() # transform timestamp back to release year df["release_year"] = [ datetime.fromtimestamp(timestamp).year for timestamp in df["release_timestamp"] ] return df[cols_to_keep]


ቀለልትን ምዕቡላትን ሕቶታት

እቲ Superlinked ዝበሃል ቤተ-መጻሕፍቲ ዝተፈላለዩ ዓይነታት ሕቶታት ክትፍጽም የኽእለካ፤ ኣብዚ ክልተ ንገልጽ። ክልቲኦም ዓይነታት ሕቶታትና ሕቶታት (ቀሊልን ምዕቡልን) ንውልቃዊ ቦታታት (መግለጺ፡ ኣርእስቲ፡ ቅዲ፡ ከምኡ’ውን ብርግጽ ቅሩብነት) ከከም ድሌተይ ክመዝኖም ይፈቕዱለይ። ኣብ መንጎኦም ዘሎ ፍልልይ ብቐሊል ሕቶ ፣ ሓደ ናይ ሕቶ ጽሑፍ ኣቐሚጠ ድሕሪኡ ተመሳሳሊ ውጽኢት ኣብ መግለጺ፣ ኣርእስቲን ቅዲን ቦታታት የልዕል።


ምስ ምዕቡል ሕቶ , ዝያዳ ረቂቕ ቁጽጽር ኣለኒ። እንተደልየ ኣብ ነፍሲ ወከፍ መግለጺ፡ ኣርእስቲን ቅዲን ቦታታት ዝተፈላለዩ ናይ ሕቶ ጽሑፋት ከእቱ እኽእል እየ። እቲ ናይ ሕቶ ኮድ ኣብዚ ኣሎ፤


 query_text_param = Param("query_text") simple_query = ( Query( movie_index, weights={ description_space: Param("description_weight"), title_space: Param("title_weight"), genre_space: Param("genre_weight"), recency_space: Param("recency_weight"), }, ) .find(movie) .similar(description_space.text, query_text_param) .similar(title_space.text, query_text_param) .similar(genre_space.text, query_text_param) .limit(Param("limit")) ) advanced_query = ( Query( movie_index, weights={ description_space: Param("description_weight"), title_space: Param("title_weight"), genre_space: Param("genre_weight"), recency_space: Param("recency_weight"), }, ) .find(movie) .similar(description_space.text, Param("description_query_text")) .similar(title_space.text, Param("title_query_text")) .similar(genre_space.text, Param("genre_query_text")) .limit(Param("limit")) )


ቀሊል ሕቶ

ኣብ ቀለልቲ ሕቶታት፡ ጽሑፍ ሕቶይ የቐምጥን ከከም ኣገዳስነቶም ንዓይ ዝተፈላለየ ሚዛናት እጥቀምን።


 result: Result = app.query( simple_query, query_text="Heartfelt romantic comedy", description_weight=1, title_weight=1, genre_weight=1, recency_weight=0, limit=TOP_N, ) present_result(result) 


ቀሊል ውጽኢት ሕቶ 1

ውጽኢትና ገለ ድሮ ዝረኣኹዎም ኣርእስታት ዝሓዘ እዩ። ነዚ ክገጥሞ ዝኽእል ንውጽኢተይ ናብ ናይ ቀረባ እዋን ኣርእስታት ንምውጋድ ንናይ ቀረባ እዋን ብምምዛን እዩ። ሚዛናት ኣሃዳዊ ድምር ክህልዎም ንቡር ይግበር (ማለት ኩሎም ሚዛናት ስለዝተስተኻኸሉ ኩሉ ግዜ ብድምር 1 ይድምር)፣ ስለዚ ከመይ ጌርካ ከም እተቐምጦም ክትጭነቕ የብልካን።


 result: Result = app.query( simple_query, query_text="Heartfelt romantic comedy", description_weight=1, title_weight=1, genre_weight=1, recency_weight=3, limit=TOP_N, ) present_result(result) 


ቀሊል ውጽኢት ሕቶ 1

ውጽኢተይ (ኣብ ላዕሊ) ሕጂ ኩሉ ድሕሪ 2021 እዩ።


ነቲ ቀሊል ሕቶ ተጠቒመ፡ ውጽኢት ክመልስ ከለኹ ዝያዳ ክቑጸር ንዝኾነ ፍሉይ ቦታ (መግለጺ፡ ኣርእስቲ፡ ቅዲ፡ ወይ ናይ ቀረባ ግዜ) ክመዝኖ እኽእል እየ። ነዚ ንፈትኖ። ኣብ ታሕቲ፡ ነቲ ቅዲን ትሕቲ ክብደት ዘለዎ ኣርእስትን ዝያዳ ክብደት ክንህቦ ኢና - ጽሑፈይ ሕቶ ብመሰረቱ ገለ ተወሳኺ ዓውደ-ጽሑፍ ዘለዎ ቅዲ ጥራይ እዩ። ውጽኢተይ ገና ናብ ናይ ቀረባ ፊልምታት ዝወገነ ክኸውን ስለ ዝደሊ፡ ሪሰንሳይ ከም ዘለዎ እየ ዝሕዞ።


 result = app.query( simple_query, query_text="Heartfelt romantic comedy", description_weight=1, title_weight=0.1, genre_weight=2, recency_weight=1, limit=TOP_N, ) present_result(result)


እዚ ሕቶ እዚ ነቲ ናይ ምውጻእ ዓመት ቁሩብ ንድሕሪት ይደፍኦ ዝያዳ ብዓይነት ዝተመዝነ ውጽኢት ንኽህበኒ (ኣብ ታሕቲ)።


ቀሊል ውጽኢት ሕቶ 3

ምዕቡል ሕቶ

እቲ ምዕቡል ሕቶ ዝያዳ ረቂቕ ቁጽጽር ይህበኒ። ኣብ ልዕሊ ናይ ቀረባ ግዜ ቁጽጽር እሕሉ፣ ግን ንመግለጺ፣ ኣርእስትን ቅዲን ዝኸውን ናይ ምድላይ ጽሑፍ እውን ክገልጽ እኽእል እየ፣ ንነፍሲ ወከፎም ድማ ከከም ድሌተይ ፍሉይ ክብደት ክምድቦም እኽእል እየ፣ ብመሰረት ኣብ ታሕቲ (ከምኡ’ውን ዋህዮታት 19-21 ), .

 result = app.query( advanced_query, description_query_text="Heartfelt lovely romantic comedy for a cold autumn evening.", title_query_text="love", genre_query_text="drama comedy romantic", description_weight=0.2, title_weight=3, genre_weight=1, recency_weight=5, limit=TOP_N, ) present_result(result)


ፍሉይ ፊልም ተጠቒምካ ድለ

ንበል ኣብታ ናይ መወዳእታ ውጽኢት ፊልምይ፡ ድሮ ዝረኣኹዋን ተመሳሳሊት ክርኢ ዝደሊን ፊልም ረኺበ። ንበል ጻዕዳ ልደት፡ ኣብ 1954 ዝተሰርሐት ፍቕራዊት ኮሜዲ (id = tm16479)፡ ብዛዕባ ደረፍቲ-ሳዕሳዕቲ ንኣጋይሽ ናብ ሓደ ኣብ ቃልሲ ዝርከብ መዕረፊ ኣጋይሽ ቨርሞንት ንምስሓብ ንመድረኽ ምርኢት ብሓባር ይመጹ። ኣብ advanced_query ተወሳኺ with_vector clause (ምስ movie_id parameter) ብምውሳኽ፡ with_movie_query ነዛ ፊልም (ወይ ዝኾነት ዝፈትዋ ፊልም) ተጠቒመ ክደሊ የኽእለኒ፡ ከምኡ’ውን ኩሉ ረቂቕ ቁጽጽር ናይ ዝተፈላለየ ንኡስ ምድላይ ሕቶ ጽሑፍን ሚዛንን ይህበኒ።


መጀመርታ movie_id ዝብል መለክዒና ንውስኸሉ፤

 with_movie_query = advanced_query.with_vector(movie, Param("movie_id"))


ደሓር ከኣ ካልኦት ንኡሳን ምድላይ ሕቶታተይ ወይ ናብ ባዶ ወይ ዝያዳ ኣገዳሲ ዝኾነ፡ ምስ ዝኾነ ትርጉም ዘለዎ ሚዛን ከቐምጦም እኽእል እየ። ንበል ቀዳመይቲ ሕቶይ ንናይ መድረኽ ምርኢት/ባንድ መዳይ ናይ ጻዕዳ ልደት ዘንጸባርቕ ውጽኢት ትመልስ ( ዋህዮ 24 ርአ)፣ ኣነ ግን ዝያዳ ስድራቤት ዝቐንዐት ፊልም ክርኢ እደሊ። ውጽኢተይ ናብቲ ዝደልዮ ኣንፈት ንምስጋር description_query_text ከእቱ እኽእል እየ።

 result = app.query( with_movie_query, description_query_text="family", title_query_text="", genre_query_text="", description_weight=1, title_weight=0, genre_weight=0, recency_weight=0, description_query_weight=1, movie_id="tm16479", limit=TOP_N, ) present_result(result) 


ውጽኢት ምዕቡል ሕቶ 1

ሕጂ ግን ውጽኢተይ ምስ ረኣኹ፡ ብሓቂ ዝያዳ ፍኹስ ዝበለን መስሓቕን ነገር ንምርካብ ኣብ መንፈስ ከም ዘለኹ ተረዲኡኒ። ንሕቶይ ብኡ መሰረት ነስተኻኽል፤


 Result = app.query( with_movie_query, description_query_text="", title_query_text="", genre_query_text="comedy", description_weight=1, title_weight=0, genre_weight=2, recency_weight=0, description_query_weight=1, movie_id="tm16479", limit=TOP_N, ) present_result(result) 


ውጽኢት ምዕቡል ሕቶ 2

ሕራይ እቶም ውጽኢታት ዝሓሹ እዮም። ካብዚኦም ሓንቲ ክመርጽ እየ። ነቲ ፖፕኮርን ኣቐምጦ!

መደምደምታ

ሱፐርሊንክድ ንጽሬት ምምላስካ ንምፍታን፡ ንምድጋምን ንምምሕያሽን ቀሊል ይገብሮ። ኣብ ላዕሊ፡ ከመይ ጌርካ ነቲ ሱፐርሊንክድ ላይብረሪ ተጠቒምካ ኣብ ቬክተር ስፔስ ትርጉማዊ ምድላይ ክትገብር ከም እትኽእል፡ ከምቲ ኔትፍሊክስ ዝገብሮ፡ ከምኡ’ውን ቅኑዕን ኣገዳስን ውጽኢት ፊልም ከም እትመልስ ኣካይደኩም ኣለና። ውጽኢትና ከመይ ጌርና ከም እንመዓራረዮ፡ ክብደትን ቃላት ምድላይን ክንቅይር ከም እንኽእል እውን ርኢና ኢና፡ ክሳብ ኣብቲ ቅኑዕ ውጽኢት ንበጽሕ።


ሕጂ ፡ ነቲ ደፍተር ባዕልኻ ፈትኖ፡ እንታይ ክትበጽሕ ከም እትኽእል ድማ ርአ!

ባዕልኻ ፈትኖ – ኮድ & ዲሞ ውሰድ!

  • 💾 Grab the Code : ምሉእ ኣተገባብራ ኣብ GitHub repo ናታትና ኣብዚ ርኣዩ . ፋርኬታ ግበሮ፡ ትዊክ ግበሮ፡ ናትካ ድማ ግበሮ!


  • 🚀 See It in Action : እዚ ኣብ ሓቀኛ ዓለም ሴትኣፕ ክሰርሕ ክትሪኦ ትደሊ? ቅልጡፍ ዲሞ ምዝገባ ግበሩ፣ ሱፐርሊንክድ ከመይ ጌሩ ንለበዋታትኩም ሱፐርቻርጅ ከም ዝኽእል ድማ ዳህስሱ። ሕጂ ዲሞ ውሰድ !


ሞተር ለበዋታት ነቲ ትሕዝቶ እንረኽበሉ ኣገባብ ይቐርጽዎ ኣለዉ። ፊልምታት ይኹን፡ ሙዚቃ ወይ ፍርያት ፡ ቬክተር ምድላይ መጻኢ እዩ —ሕጂ ድማ ናይ ገዛእ ርእስኻ ክትሃንጽ እትኽእል መሳርሒታት ኣለካ።


ደራሲ ፡ ሞር ካፕሮንዛይ