Статьи

Этот пример приложения для iPad работает с системой машинного обучения на основе JSON

GoSmarter — это система машинного обучения, основанная на JSon, которая при наличии запроса на естественном языке (NLP) выдаст список рекомендуемых продуктов. Это машинное обучение также использует возможности социальных сетей, чтобы рекомендовать продукты, основанные на ваших друзьях.

В этом  примере я написал приложение для  iPad  , которое представляет собой приложение с двумя вкладками, на первой вкладке оно вернет все популярные элементы среди   пользователей GoSmarter . На вкладке 2 мы можем передать любой запрос, и он вернет список продуктов, которые являются актуальными из Amazon, eBay и других источников. Некоторые из   возможностей программирования iOS, которые он демонстрирует:

Как стартер в  XCode  легко создать приложение с вкладками с раскадровкой по умолчанию с 2 вкладками. При создании проекта вам просто нужно сказать  Xcode, что  это приложение лучше настроено для  iPad .

Обратитесь к этим  образцам панели поиска youtube  от  iffytheperfect1983. В нашем  примере мы получили запрос с панели поиска и передали в  API-код RESTful GoSmarter JSon, как  показано ниже:

-(void)loadData: (NSString *)searchString {
NSString *baseUrlString = @"http://gosmarter.net/gosmarter/searchwall.do?query=";
NSString* escapedUrlString = [searchString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSString *urlString = [baseUrlString stringByAppendingString:escapedUrlString];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest * request = [NSURLRequest requestWithURL:url];
connection = [NSURLConnection connectionWithRequest:request delegate:self];

if(connection){
webData = [[NSMutableData alloc]init];
}
[self.myTableView resignFirstResponder];
}

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSString *searchQuery = searchBar.text;
[self loadData:searchQuery];
}

Существует  хорошая демонстрация на YouTube для обмена данными между двумя приложениями  от  iffytheperfect1983 , также есть хороший блог  Storyboards Segue Tutorial: передача данных между контроллерами представления . Эти 2 показывают, как обмениваться данными между двумя контроллерами представления. В нашем примере сценарий использования заключается в том, что, когда пользователь выбирает популярный элемент, он должен передать этот запрос на 2-й контроллер представления вкладок и автоматически вернуть все результаты в этом запросе. Пользовательский интерфейс, как показано ниже,

Storyboard Segue UI для обмена данными между View Controller

Storyboard Segue UI для обмена данными между View Controller

//First View Controller:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
SecondViewController *viewController = segue.destinationViewController;
NSIndexPath *indexPath = [self.myTableView indexPathForSelectedRow];
viewController.onLoad = YES;
viewController.searchString = [nameArray objectAtIndex:indexPath.row];
}

//Second View Controller</pre>
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if(onLoad){
[self loadData:searchString];
}
}

Существует  видео YouTube о создании ячейки пользовательского представления таблицы . Мы создали ячейку Custom TableView и связали ее с 2 метками, одна для имени, а другая для цены, как показано ниже

Пользовательский UITableViewCell

Пользовательский UITableViewCell

Код для Custom Cell,

@interface CustomTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@end

В заключение в этом примере мы продемонстрировали некоторые фундаментальные возможности программирования на  iOS. 

Вы также можете опробовать  NLP-  запросы в этой   системе машинного обучения , так как мы определили Онтологию продукта,

  • iPod ниже 25 долларов
  • Марио <25 долларов
  • Марио> 25 долларов
  • Марио менее 25 долларов
  • iPad  больше 250 долларов
  • Автомобиль возле 01702
  • Игрушки для мальчиков, Игрушки для девочек
  • Мобильные телефоны для пожилых людей
  • «42 ″ LED
  • Недорогие смартфоны
  • Дешевые телефоны
  • Новый светодиод
  • Samsung: вернет смартфон Samsung, потому что в онтологии продукта идентификация бренда для Samsung — смартфон