import SwiftUI
import NaturalLanguage

struct ContentView: View {
   @State private var textInput: String = ""
   @State private var message: String = ""
   
   var body: some View {
      VStack {
         HStack {
            TextField("Type a word", text: $textInput)
               .textFieldStyle(.roundedBorder)
            Button("Generate") {
               var text = textInput.trimmingCharacters(in: .whitespacesAndNewlines)
               text = text.lowercased()
               calculateEmbedding(word: text)
            }
            .buttonStyle(.borderedProminent)
         }
         ScrollView {
            Text(message)
               .font(.system(size: 18))
               .textSelection(.enabled)
               .frame(maxWidth: .infinity, alignment: .leading)
         }
         Spacer()
      }
      .padding()
   }
   func calculateEmbedding(word: String) {
      if let embeddings = NLEmbedding.wordEmbedding(for: .english) {
         if embeddings.contains(word) {
            let vector = embeddings.vector(for: word)
            message = "\(vector ?? [])"
         }
      }
   }
}