banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Công nghệ tìm kiếm - có ai biết!!!  XML
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 04/12/2006 15:22:31 (+0700) | #1 | 27843
114v
Member

[Minus]    0    [Plus]
Joined: 08/07/2006 23:27:00
Messages: 191
Offline
[Profile] [PM]
Nghe có vẻ rất to lớn, nhưng chỉ mong có thể làm như sau

I, So sánh chuỗi. Ví dụ

Chúng tôi là ai? <=> Ai là chúng tôi?

Khi so sánh 2 chuỗi như vậy, thì kết quả trùng là 100%. Nhưng vị trí các từ lại khác nhau, nên ta phải tính đúng khoảng 55%

Với chuỗi:

Tổ chức hacker Việt Nam <=> Tổ chức nhân đạo Việt Nam

Thì sẽ là bao nhiều %.

II, Có ai biết class nào làm được như vậy không?

Cảm ơn nhiều :!smilie
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 04/12/2006 17:43:49 (+0700) | #2 | 27853
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

114v wrote:
Nghe có vẻ rất to lớn, nhưng chỉ mong có thể làm như sau

I, So sánh chuỗi. Ví dụ

Chúng tôi là ai? <=> Ai là chúng tôi?

Khi so sánh 2 chuỗi như vậy, thì kết quả trùng là 100%. Nhưng vị trí các từ lại khác nhau, nên ta phải tính đúng khoảng 55%

Với chuỗi:

Tổ chức hacker Việt Nam <=> Tổ chức nhân đạo Việt Nam

Thì sẽ là bao nhiều %.

II, Có ai biết class nào làm được như vậy không?

Cảm ơn nhiều :!smilie  


http://lucene.apache.org/java/docs/ được viết bằng Java rất hay. Thử ngâm cứu xem sao?

Thân.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 13/12/2006 05:41:13 (+0700) | #3 | 30157
114v
Member

[Minus]    0    [Plus]
Joined: 08/07/2006 23:27:00
Messages: 191
Offline
[Profile] [PM]
Anh có code nào nào PHP không?

Cho hỏi thêm 1 câu thế này: Trong 1 đoạn văn bản nào đó, có cách nào để tìm từ nào xuất hiện nhiều nhất không?

Cảm ơn nhiều
[Up] [Print Copy]
  [Question]   Re: Công nghệ tìm kiếm - có ai biết!!! 13/12/2006 05:55:25 (+0700) | #4 | 30159
seraphpl
Member

[Minus]    0    [Plus]
Joined: 04/12/2006 19:52:12
Messages: 97
Location: xxx
Offline
[Profile] [PM] [WWW] [Yahoo!] [MSN] [ICQ]

114v wrote:
Cho hỏi thêm 1 câu thế này: Trong 1 đoạn văn bản nào đó, có cách nào để tìm từ nào xuất hiện nhiều nhất không?  

Em nghĩ nên sắp xếp tất cả các từ có trong đoạn văn bản sau đó đếm số lần xuất hiện của mỗi từ, từ đó suy ra từ xuất hiện nhiều nhất.
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 13/12/2006 15:57:31 (+0700) | #5 | 30254
114v
Member

[Minus]    0    [Plus]
Joined: 08/07/2006 23:27:00
Messages: 191
Offline
[Profile] [PM]
Cái đó là tất nhiên rồi, nhưng làm sao để thực hiện tốt là cả 1 vấn đề
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 13:38:39 (+0700) | #6 | 30429
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]

114v wrote:
Nghe có vẻ rất to lớn, nhưng chỉ mong có thể làm như sau

I, So sánh chuỗi. Ví dụ

Chúng tôi là ai? <=> Ai là chúng tôi?

Khi so sánh 2 chuỗi như vậy, thì kết quả trùng là 100%. Nhưng vị trí các từ lại khác nhau, nên ta phải tính đúng khoảng 55%

Với chuỗi:

Tổ chức hacker Việt Nam <=> Tổ chức nhân đạo Việt Nam

Thì sẽ là bao nhiều %.

II, Có ai biết class nào làm được như vậy không?

Cảm ơn nhiều :!smilie  


Hì, đọc thấy cái ý này hay quá. Mình nghĩ là sẽ viết được 1 chương trình nhỏ để so sánh. Nhưng mà chắc là khoảng vài ngày nữa...
(đang KT nhiều quá!)
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 18:35:44 (+0700) | #7 | 30457
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

114v wrote:
Anh có code nào nào PHP không?

Cho hỏi thêm 1 câu thế này: Trong 1 đoạn văn bản nào đó, có cách nào để tìm từ nào xuất hiện nhiều nhất không?

Cảm ơn nhiều 


Hèm... thuật toán tìm kiếm rất nặng và không đơn giản. Ngôn ngữ như php được thiết kế để thực hiện những công việc mang tính trình bày hơn là để phân tích, xử lý và đánh giá dữ liệu. Bởi thế, nếu muốn ứng dụng một cách nghiêm túc, không nên nghĩ đến việc dùng php cho mục đích này.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 20:49:47 (+0700) | #8 | 30461
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
To anh Conmale:
"rất nặng và phức tạp"?

Có lẽ em không hiểu đúng yêu cầu chăng?
Em chỉ nghĩ khá đơn giản là sẽ viết như thế này:
::: Trong 2 câu, ta sẽ chọn 1 câu làm khóa. Tìm tất cả các từ của cả 2 câu. So sánh các từ của câu này với câu kia.
::: Và tùy theo kết quả: vị trí của từ, độ chính xác cho đánh giá phù hợp.

Vì thế ta có thể phân ra làm các bài toán nhỏ: Tìm từ, so sánh từ, đánh giá.
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 21:09:31 (+0700) | #9 | 30465
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

FaL wrote:
To anh Conmale:
"rất nặng và phức tạp"?

Có lẽ em không hiểu đúng yêu cầu chăng?
Em chỉ nghĩ khá đơn giản là sẽ viết như thế này:
::: Trong 2 câu, ta sẽ chọn 1 câu làm khóa. Tìm tất cả các từ của cả 2 câu. So sánh các từ của câu này với câu kia.
::: Và tùy theo kết quả: vị trí của từ, độ chính xác cho đánh giá phù hợp.

Vì thế ta có thể phân ra làm các bài toán nhỏ: Tìm từ, so sánh từ, đánh giá. 


Hì hì,

Nếu không phải 2 câu mà là 200 câu thì sao?
Nếu không phải 1 từ khóa mà mỗi từ trong 200 câu đều là từ khóa thì sao?

Nếu không cần lưu kết quả tìm ở trên mà chỉ đơn thuần là thực hiện công tác tìm mỗi khi cần thì application này cần bao nhiêu tài nguyên để thực hiện cho mỗi đòi hỏi? cho 100 đòi hỏi cùng 1 lúc? cho 1000 đòi hỏi cùng một lúc?

Nếu cần lưu kết quả thì lưu thế nào và lấy lại kết quả cho mỗi lần đòi hỏi như thế nào?

Xét những điểm trên sẽ thấy php không phải là chọn lựa thích hợp.

Ý anh là công tác tìm kiếm và trả lời kết quả tìm kiếm không chỉ gói gọn trong 1 vài dòng mã (php chẳng hạn) mà nó là cả một chuỗi công việc. Đôi khi nên nhìn rộng ra hơn là chỉ nhắm vào cú pháp và thuật toán đơn giản nào đó trong cú pháp.

Thân mến.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 21:30:32 (+0700) | #10 | 30467
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]

conmale wrote:


Nếu không phải 2 câu mà là 200 câu thì sao?
Nếu không phải 1 từ khóa mà mỗi từ trong 200 câu đều là từ khóa thì sao?
 

Quả thật, khi bắt đầu nhìn nhận vấn đề, em nhìn nhận hơi đơn giản, và càm thấy chột dạ khi thấy những "yêu cầu nhỏ" này.

conmale wrote:

Nếu không cần lưu kết quả tìm ở trên mà chỉ đơn thuần là thực hiện công tác tìm mỗi khi cần thì application này cần bao nhiêu tài nguyên để thực hiện cho mỗi đòi hỏi? cho 100 đòi hỏi cùng 1 lúc? cho 1000 đòi hỏi cùng một lúc?
 


Theo em nghĩ có lẽ tác giả topic hỏi trong phạm vi 1 bài toán nhỏ hơn là đòi hỏi lớn về tài nguyên, tầm thực hiện.

conmale wrote:

Nếu cần lưu kết quả thì lưu thế nào và lấy lại kết quả cho mỗi lần đòi hỏi như thế nào?

 


Thật tình, nếu giải quyết được những vấn đề này có lẽ ta sẽ có 1 "cỗ máy" Google thu nhỏ?

Em bỗng nảy ra một thắc mắc: Có phải Google cũng xây dựng từ những vấn đề này? Nếu nó (Google) được xây dựng như thế này thì việc xây dựng đó phức tạp cỡ nào? Thời gian khả thi thực hiện (với số lượng nhân công cụ thể) là bao nhiêu?
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 21:46:44 (+0700) | #11 | 30469
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

FaL wrote:

conmale wrote:


Nếu không phải 2 câu mà là 200 câu thì sao?
Nếu không phải 1 từ khóa mà mỗi từ trong 200 câu đều là từ khóa thì sao?
 

Quả thật, khi bắt đầu nhìn nhận vấn đề, em nhìn nhận hơi đơn giản, và càm thấy chột dạ khi thấy những "yêu cầu nhỏ" này.

conmale wrote:

Nếu không cần lưu kết quả tìm ở trên mà chỉ đơn thuần là thực hiện công tác tìm mỗi khi cần thì application này cần bao nhiêu tài nguyên để thực hiện cho mỗi đòi hỏi? cho 100 đòi hỏi cùng 1 lúc? cho 1000 đòi hỏi cùng một lúc?
 


Theo em nghĩ có lẽ tác giả topic hỏi trong phạm vi 1 bài toán nhỏ hơn là đòi hỏi lớn về tài nguyên, tầm thực hiện.

conmale wrote:

Nếu cần lưu kết quả thì lưu thế nào và lấy lại kết quả cho mỗi lần đòi hỏi như thế nào?

 

 

smilie) nếu có thể bức ra khỏi cái giới hạn "nhỏ" kia thì tốt hơn nhiều lắm bởi vì khi viết một cái gì đó, mình nên suy tư về tính lâu dài của nó. Anh có một người bạn trước đây có nói với anh câu này: "hầu như những thứ bọn tui viết xong, không bao giờ sửa lại". Câu này làm anh suy nghĩ nhiều lắm. Lý do: để viết một cái gì ở mức độ hiệu suất như thế là điều kinh khủng. Chứng tỏ là người viết đã suy tư, phân tích cực kỳ kỹ lưỡng các tình huống có thể xảy ra. Đó là cái khác biệt giữa "viết cho chạy" và "viết cho chạy bền, hiệu suất" đó smilie).

FaL wrote:

Thật tình, nếu giải quyết được những "vấn đề nhỏ" này có lẽ ta sẽ có 1 "cỗ máy" Google thu nhỏ?

Em bỗng nảy ra một thắc mắc: Có phải Google cũng xây dựng từ những vấn đề này? Nếu nó (Google) được xây dựng như thế này thì việc xây dựng đó phức tạp cỡ nào? Thời gian khả thi thực hiện (với số lượng nhân công cụ thể) là bao nhiêu? 


Có ít nhất 2 mảng riêng biệt trong cơ chế làm việc của google (và hầu hết các "search engine"):
1) data gathering / data analysing / data storing (data mining process)
2) data presentation / data providing

Những gì người dùng có thể thấy và search trên google là những dữ liệu đã được thu thập, phân tích và lưu dụng (mảng 2). Mảng 1 bao gồm một quy trình thực hiện phức tạp. Crawlers phải đi thu thập thông tin, thông tin mang về phải được xử lý (phân loại, lọc bỏ, lưu trữ...). Mảng này người dùng hoàn toàn không thấy được và tất nhiên, các ngôn ngữ lập trình mang tính "trình bày" như php chắc chắn không thể dùng cho mục đích trên (ít ra là ở mảng 1).

Thân mến.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 21:48:12 (+0700) | #12 | 30470
[Avatar]
eyesdog
Elite Member

[Minus]    0    [Plus]
Joined: 18/01/2002 06:54:01
Messages: 94
Offline
[Profile] [PM]
Còn một vấn đề nữa: Với tiếng Việt thì "chúng tôi" là một từ, do đó để tìm từ đúng nghĩa trong tiếng Việt là một thứ khá khó, có lẽ phải cần một từ điển so sánh, dẫn đến thuật toán tìm kiếm từ xuất hiện nhiều nhất trong văn bản sẽ khó khăn và phức tạp lên khá nhiều.
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 14/12/2006 21:54:47 (+0700) | #13 | 30474
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
Cám ơn anh! Em lại học thêm được 1 điều.
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Công nghệ tìm kiếm - có ai biết!!! 15/12/2006 14:35:41 (+0700) | #14 | 30625
114v
Member

[Minus]    0    [Plus]
Joined: 08/07/2006 23:27:00
Messages: 191
Offline
[Profile] [PM]
@FaL: Đúng là mình không có ý định hỏi trong phạm vi chỉ so sánh 2 câu

Nhưng cái mà anh conmale hiện nay là những kỹ thuật chính trong các Search Engine. Em nghe nói tụi robot gì đó được viết như 1 chương trình chạy trong hệ thống chứ không phải thông qua script (điều này là tất nhiên), tụi nó còn chạy máy chủ khác nhau.

Theo em hình dung thì có thể nó như thế này:
Có 1 csdl chính, giống như ngôi nhà. Trong đó có các phòng, mỗi phòng chứa 1 con robot. Hàng ngày, tụi nó đi tìm trên mạng, tìm được bao nhiêu thì về bỏ vào nhà chính kia và không quên đánh dấu lại ngày tháng, cờ để bao giờ thì lại lấy cái mới về tiếp vân vân và vân vân. Quả thật, 1 Search Engine là 1 công trình khá đồ sộ.

Tuy nhiên trong bài viết này, em không muốn hướng tới bộ máy tìm kiếm, mà chỉ muốn thực hiện trong 1 phạm vị nhỏ thôi. Em có 1 hướng giải quyết tương đối:
1, Không so sánh các từ quá thông dụng, thường được sử dụng nhiều trong văn bản. Hiện tại em chưa thể biết tiếng Việt có những từ nào smilie
2, Vì quá nhiều từ trong 1 đoạn văn bản. Vậy mình sẽ chỉ lấy những từ được xem HEADING mà thôi

Không biết ai còn có cao kiến nào khác, xin ủng hộ để thảo luận thêm phong phú.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|